Программирование на языке Pascal

       

Создание списков


Предположим, что есть некоторый набор значений (например, в файле), которые необходимо записать в создаваемый односвязный список. Тогда у нас есть две возможности создавать этот список: от хвоста к голове или от головы к хвосту.

Мы приведем здесь обе программы, позволив себе для краткости опустить описания типов, воспользовавшись описанием, показанным в табл. 1 (a):

var head,p: ukazatel; f: text; begin ... head:= nil; while not eof(f) do begin new(p); read(f,p^.znach); p^.next:= head; head:= p; end; end.


Рис. 10.3.  Очередной шаг процесса генерации списка "от хвоста к голове"
var head,p,q: ukazatel; f: text; begin ... if eof(f) then head:= nil else begin new(head); {головной элемент создается отдельно} read(f,head^.znach); head^.next:= nil;

q:= head; while not eof(f) do begin new(p); read(f,p^.znach); p^.next:= nil; q^.next:= p; q:= q^.next; end; end; end.


Рис. 10.4.  Очередной шаг процесса генерации списка "от головы к хвосту"



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