Предположим, вы хотите написать программу для ведения своих
личных счетов. Вы можете хранить все данные о счетах в записях,
таких как запись типа 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. В вашей программе требуется отс-
леживать только два указателя: первый счет в списке и "текущий"
счет.