Использование начального узла
Использование начального узла
Еще раз просмотрите код вставки и удаления элемента связного списка. Не кажется ли вам неудобным наличие двух случаев для обеих операций? Отдельные специальные случаи нужны для обработки вставки и удаления первого узла - операция, которая, возможно, будет выполняться не очень часто. Может быть, существует другой способ? Другой способ действительно есть, он предусматривает использование фиктивного начального узла. Фиктивный начальный узел - это узел, который нужен только в качестве заполнителя, в нем не будут храниться данные. Первым реальным узлом будет тот, на который указывает указатель Next фиктивного узла. Связный список, как и раньше, заканчивается узлом, указатель Next которого равен nil. При создании такого списка его нужно правильно инициализировать, выделив память под начальный узел и установив его указатель Next равным nil.
var
HeadNode : PSimpleNode;
begin
• • •
New(HeadNode);
HeadNode^.Next := nil;
После этой небольшой подготовительной части все вставки и удаления можно будет выполнять с помощью операций "вставить после" и "удалить после". Операция "вставить после первого узла" сводится к вставке нового элемента после фиктивного узла, а операция "удалить первый узел" превращается в удаление элемента после начального узла. За счет использования фиктивного начального узла нам удалось избежать специальных случаев.
Конечно, введение фиктивного начального узла усложнило реализацию класса: теперь при создании нового связного списка нам нужно распределить и инициализировать дополнительный узел, а при удалении списка - уничтожить этот узел.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Выбор корневого узла
Выбор корневого узла Как вы уже видели, выбрать корневой узел можно при помощи образца выбора «/», как, например:<xsl:template match="/"> <HTML>
5.16. Выключение узла сервера
5.16. Выключение узла сервера В двух предыдущих разделах рассматривался выход из строя узла сервера или недоступность узла сервера в сети. Теперь мы рассмотрим, что происходит, если узел сервера выключается оператором в то время, когда на этом узле выполняется наш
Пример: вывод аппаратного адреса узла
Пример: вывод аппаратного адреса узла Теперь мы используем нашу функцию my_addrs для того, чтобы возвратить все IP-адреса узла. Затем для каждого IP-адреса мы делаем вызов SIOCGARP функции ioctl, чтобы получить и вывести аппаратные адреса. Наша программа показана в
Задание адреса следующего транзитного узла
Задание адреса следующего транзитного узла Объект вспомогательных данных IPV6_NEXTHOP задает адрес следующего транзитного узла дейтаграммы в виде структуры адреса сокета. В структуре cmsghdr, содержащей эти вспомогательные данные, элемент cmsg_level будет иметь значение IPPROTO_IPV6,
Определение имени узла
Определение имени узла При использовании многих протоколов семейства TCP/IP необходимо, чтобы к компьютеру можно было обращаться по имени. Для того чтобы упростить настройку отдельных программ, в Linux содержится специальная утилита hostname, позволяющая определить имя узла.
Создание содержимого Web-узла
Создание содержимого Web-узла Несмотря на то что данная глава в основном посвящена особенностям настройки и выполнения Web-сервера, администратору, осуществляющему поддержку Web-сервера, необходимо представлять себе, как создаются документы, которые размещаются на Web- узле.
Форматы данных, используемых при создании Web-узла
Форматы данных, используемых при создании Web-узла Несмотря на наличие специализированных инструментальных средств, необходимо знать форматы основных данных, применяемых при создании Web-узлов. Как правило, основное содержимое Web-узла составляют статические Web-страницы,
10.8.4 Выбор начального порядкового номера
10.8.4 Выбор начального порядкового номера Спецификация TCP предполагает, что во время установки соединения каждая из сторон выбирает начальный порядковый номер (по текущему значению 32-разрядного внутреннего таймера). Как это выполняется?Представим, что произойдет при
Удаление учебного узла
Удаление учебного узла Если созданный учебный узел вам больше не нужен, можно удалить его. Для этого выполните следующее.Откройте узел SharePoint, который хотите удалить. Если потребуется, введите имя пользователя и пароль и щелкните ОК.Убедитесь, что имеете достаточно прав
Создание узла блога
Создание узла блога Строго говоря, узлы блогов не являются новой функцией служб SharePoint 3.0. В службах версии 2.0 можно было создавать узлы блогов при помощи Microsoft Office FrontPage 2003. Однако в службах SharePoint 3.0 можно создавать узлы блогов из обозревателя. Если используется SharePoint Server 2007,
2.2.1. Понимание концепции начального уровня
2.2.1. Понимание концепции начального уровня Хотя для организаций уровня 1 обычно характерны специально создаваемые и даже хаотические процессы, они, несмотря на выход за рамки бюджета и графика, часто разрабатывают вполне функциональные продукты. Успех для организаций
Структура каталогов Web-узла ASP.NET
Структура каталогов Web-узла ASP.NET Если у вас есть опыт создания Web-приложений с использованием ASP.NET 1.x, для вас можете показаться весьма удивительным то, что множество привычных для вас файлов (Web.config, Global.asax, AssemblyInfo.cs и т.д.) новый Web-узел не включает. Кроме того, шаблон Web Site
Создание простого Web-узла ASP.NET 2.0
Создание простого Web-узла ASP.NET 2.0 Ограниченный объем книги не позволяет здесь описать особенности всех Web-элементов управления, входящих в доставку ASP.NET 2.0 (для этого требуется отдельная и довольно объемная книга). Но чтобы проиллюстрировать работу с paзличными
Утилита администрирования узла ASP.NET 2.0
Утилита администрирования узла ASP.NET 2.0 В завершение этого раздела главы следует упомянуть тот факт, что ASP.NET 2.0 теперь предлагает Web-утилиту конфигурации для управления множеством установок в файле Web.config узла. Чтобы активизировать эту утилиту (рис. 24.11), выберите Web Site?ASP.NET
Использование начального и конечного узлов
Использование начального и конечного узлов Для односвязного списка было показано, что наличие начального узла существенно упрощало операции вставки и удаления. Соответствующий случай для двухсвязного списка - наличие двух фиктивных узлов: начального и конечного. Они