Borland Pascal. Руководство пользователя

       

Управление связанным списком


Предположим, вы хотите написать программу для ведения своих личных счетов. Вы можете хранить все данные о счетах в записях, таких как запись типа TCheck, определенная в Примере 8.5. Но при написании программы трудно предположить, с каким количеством сче- тов вам придется иметь дело. Одно из решений здесь состоит в соз- дании большого массива записей счетов, но это приведет к лишним затратам памяти. Более элегантное и гибкое решение состоит в рас- ширении определения записи и включении в нее указателя на следую- щую запись списка, что приведет к образованию связанного списка, показанного ниже:

type PCheck = ^TCheck; TCheck = record Amount: Real; Month: 1..12; Day: 1..31; Year: 1990..2000; Payee: string[39]; Next: PCheck; { указывает на следующую запись } end.

Пример 8.7 Записи в связанном списке.

Теперь вы можете считать каждую запись счета из файла и вы- делить для нее память. Если запись находится в конце списка, поле Next следует сделать равным nil. В вашей программе требуется отс- леживать только два указателя: первый счет в списке и "текущий" счет.



Содержание раздела