Основы программирования на языке Turbo Pascal. Беляева И.В. - 249 стр.

UptoLike

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

249
СПИСКИ
Обсудим вопрос о том, как в динамической памяти можно создать
структуру данных переменного размера.
Разберем следующий пример. В процессе физического эксперимента
многократно снимаются показания прибора (допустим, термометра) и
записываются в компьютерную память для дальнейшей обработки.
Заранее неизвестно, сколько будет произведено измерений.
Если для обработки таких данных не использовать внешнюю память
(
файлы), то разумно расположить их в динамической памяти. Во-первых,
динамическая память позволяет хранить больший объем информации, чем
статическая. А во-вторых, в динамической памяти эти числа можно
организовать в связанный список, который не требует предварительного
указания количества чисел, подобно массиву. Что же такое «связанный
список»? Схематически он выглядит так:
Здесь Inf – информационная часть звена списка (величина любого
простого или структурированного типа, кроме файлового), Next –
указатель на следующее звено списка; First – указатель на заглавное звено
списка.
Согласно определению, список располагается в динамически
распределяемой памяти, в статической памяти хранится лишь указатель на
заглавное звено. Структура, в отличие от массива, является действительно
динамической: звенья создаются и удаляются по мере необходимости, в
процессе выполнения программы.
Для объявления списка сделано исключение: указатель на звено списка
объявляется раньше, чем само звено. В общем виде объявление выглядит
так:
Type U = ^Zveno;
Zveno = Record Inf : BT; Next: U End;