Предположим, что есть некоторый набор значений (например, в файле), которые необходимо записать в создаваемый односвязный список. Тогда у нас есть две возможности создавать этот список: от хвоста к голове или от головы к хвосту.
Мы приведем здесь обе программы, позволив себе для краткости опустить описания типов, воспользовавшись описанием, показанным в табл. 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. Очередной шаг процесса генерации списка "от головы к хвосту"
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
studopedia.su - Студопедия (2013 - 2025) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав!Последнее добавление