Род Стивенс

Книги → Delphi. Готовые алгоритмы → Глава 2. Списки

NumIterns := Nmnltems+l; end;

Чтобы такой подход работал, должна быть гарантия, что значения новой ячейки всегда лежат между значениями меток. Например, если пользователь введет в каче­стве фамилии'—цикл выйдет за конечную метку, так как — идет после. В этом случае программа аварийно завершит работу при попытке обратиться к значению cell_ptr. LastName, когда сеll_ptr установлено в nil.

Другие связанные структуры

С помощью указателей нетрудно построить множество других полезных ти­пов связанных структур, таких как деревья, неоднородные и разреженные мас­сивы, графы и сети. Ячейка может содержать любое число указателей на дру­гие ячейки. Например, для создания двоичного дерева вы можете использовать ячейку, содержащую два указателя - на правую и левую дочерние ячейки. Тип за­писи BinaryCell может быть определен следующим образом:

type

PBinaryCell = ATBinaryCell;

TBinaryCell = record

LeftChild : PBinaryCell;

RightChild : PBinaryCell;

end;

На рис. 2.11 изображено дерево, сформированное из ячеек такого типа. В главе 6 деревья рассматриваются более подробно.

Ячейка может также содержать связанный список ячеек, каждая из которых содержит указатель на другую ячейку. Это позволяет программе связывать ячейку с любым количеством других ячеек. На рис. 2.12 приведены примеры различных связанных структур данных. Вы встретите подобные структуры позже, в частно­сти в главе 12.

Резюме

Используя указатели, вы можете строить гибкие структуры данных, такие как связанные списки, циклические связанные списки и двусвязные списки. Эти струк­туры позволяют легко добавлять и удалять элементы из любой позиции списка.

Добавляя дополнительные указатели на класс ячеек, вы можете превратить двусвязные списки в потоки. Если руководствоваться таким подходом, можно со­здать такие экзотические структуры данных, как разреженные массивы, деревья, хеш-таблицы и сети. Они подробно описаны в следующих главах.

← предыдущая следующий раздел →

Страницы раздела: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Публикация компанией Dropbox кода Zulip – средства общения для IT-разработчиков

20.11.2015
Одной из одобрительно встреченных программистами инициатив, реализующихся в рамках акции Hack Week, стала публикация исходного кода приложения Zulip – веб-приложения для общения между собой разработчиков в сфере IT-технологий.

Объединение ОС Android и Chrome

17.11.2015
Слухи об объединении двух крупнейших ОС компании Google, Android и Chrome, гуляют по Интернету уже более 5 лет, но до сих пор этого не случилось, хотя очевидно, что с течением времени эти ОС становятся всё более похожими: так, в последнее время появилось немало Android-устройств, к которым прилагаются клавиатуры, а Chrome OS «научилась» работать с сенсорными экранами.

Конференция Linux Piter 2015

15.11.2015
Уже почти через неделю в Санкт-Петербурге впервые в истории пройдёт конференция, посвящённая проблемам свободного программного обеспечения – Linux Piter 2015.