В разделе описания типов объявлен тип Zveno, содержащий следующие поля: Elem – элемент звена (информационное поле), Next – указатель на следующее звено.
Формирование списка из трёх звеньев по принципу «очереди»:
а) L1:=Nil; в) New(X);
New(X); Pr^.Next:=X;
Readln(X^.Elem);
Pr:=X;
б) L1:=X; г) New(X);
Readln(X^.Elem); Pr^.Next:=X;
Pr:=X; Readln(X^.Elem);
Pr:=X;
X^.Next:=Nil;
В процедуре Form вначале переменная L1 полагается равной Nil, и выделяется динамическая память под 1-ое звено (переменная Х – указатель на 1-ое звено). Далее, если L1 равно Nil, в L1 заносится указатель на первое звено, т. е. в L1 будет находиться указатель на начало списка. В поле Elem этого звена с клавиатуры вводится 1-й элемент. В переменной Pr запоминается указатель на 1-ое звено.
После этого выделяется память под 2-ое звено (переменная Х – указатель на 2-ое звено). В поле Next 1-ого звена копируется значение переменной Х, т. е. в это поле заносится указатель на 2-ое звено. Затем заполняется поле Elem 2-ого звена. После этого в переменной Pr запоминается указатель на 2-ое звено.
Аналогично формируется 3-е звено. В поле Next последнего звена заносится Nil. Таким образом, список будет содержать звенья, связанные между собой, причем, 1-ое звено будет стоять в начале списка, а последнее – в конце. В переменной L1 будет находиться указатель на начало списка.
В процедуре Search осуществляется последовательный перебор элементов списка, пока не будет найден искомый элемент или не достигнут конец списка. В конце процедуры на экран выводится соответствующее сообщение.
Процедура Wywod выводит элементы всех звеньев списка до и после удаления. Для вывода списка используется переменная L1, при этом адрес начала не изменяется, т. к. L1 – параметр–значение.