Узлов в начало списка

Создание списка из N узлов за счет добавления

Рис. 22. Включение узла в начало списка

Procedure Ins_First(var first: PList); var p: PList; begin new(p); readln(p^.info); { first – указатель на первый узел списка } { создание узла списка } { заполнение информационного поля узла }
p^.link:=first; first:=p; { установка связи между вставленным узлом и списком } { новое значение указателя на первый узел }
end;  
       

Используя операцию включения элемента в начало списка, можно сформировать список из n элементов: начиная с пустого списка, следует n раз выделить память для узлов списка и последовательно добавить узлы в начало списка. Эти операции можно реализовать с помощью любого итерационного цикла. Порядок следования узлов получается обратным, т.е. первым в списке оказывается элемент, который был добавлен последним.

Procedure Create1(var first: PList; n: byte); var p: PList; i: byte; begin first:=nil; { first – указатель на первый узел списка, n – количество узлов в списке } { создание пустого списка }
for i:=1 to n do begin  
new(p); { создание узла списка }
readln(p^.info); { заполнение информационного поля узла }
p^.link:=first; { установка связи между вставленным узлом и списком }
first:=p; { новое значение указателя на первый узел }
end; end;  
     

Заметим, что создание первого узла списка и включение его в пустой список (“перед” несуществующим узлом) выполняется точно так же, как включение в непустой список любого другого узла (см. рис. 23).

       
   
 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: