Программирование на языке С. Наместников С.М. - 24 стр.

UptoLike

Составители: 

24
рода может стать обработка табличных данных, у которых есть заданные поля,
т.е. набор стандартных типов данных, и записи, представляющие собой
конкретное наполнение таблицы. Формально для описания таблицы можно
использовать простой или динамический массив структур. Но в этом случае
возникает несколько проблем. Во-первых, наперед часто сложно указать
приемлемое число
записей (размер массива) для хранения информации. Во-
вторых, при большом размере массива сложно выполнять добавление и
удаление записей, находящихся между другими записями таблицы. И, наконец,
любой используемый массив не будет эффективно использовать память ЭВМ,
т.к. всегда будут зарезервированы не используемые записи на случай
добавления новых. Эти основные проблемы обусловили необходимость
создания нового механизма представления данных в памяти ЭВМ, который
получил название связные списки.
Идея связных списков состоит в представлении данных в виде объектов,
связанных друг с другом указателями (рис. 4).
Объект 1
*prev
*next
NULL
Объект 2
*prev
*next
Объект N
*prev
*next
NULL
*head *tail *current
Рис. 4. Графическая интерпретация связных списков
Здесь *prev и *next – указатели на предыдущий и следующий объекты
соответственно; *head и *tail – указатели на первый и последний объекты;
*current – указатель на текущий объект, с которым идет работа. Если
предыдущего или последующего объекта не существует, то указатели *prev и
*next принимают значение NULL. Указатели *head и *tail являются
вспомогательными и служат для быстрого
перемещения к первому и
последнему объекту соответственно. Рассмотрим работу связных списков на
примере представления следующей информации.
название автор год издания
lib lib.title lib.author lib.year
lib lib.title lib.author lib.year
lib lib.title lib.author lib.year
M
lib lib.title lib.author lib.year
Строки данной таблицы можно описать с помощью структуры: