Поскольку каждый вновь добавленный элемент размещается в начале списка то указатель на начало списка всегда будет связан с вновь добавляемым элементом.
Пример: Организация стека из трех элементов:
Type
Pn=^node;
Node=record
Info:byte;
Next:pn;
End;
Var
B,c:pn;
I:byte;
.
.
B:=nil;{1}
For I:=1 to 3 do
Begin
New(c);{2}
C^.next:=b;{3}
c^.info:=I;{4}
b:=c;{5}
End;
Комментарии
1-указатель на вершину списка устанавливается в nil (вершина списка неопределенна).
2-в динамической памяти выделяется место под очередной создаваемый элемент адрес которого записывается в С.
3- формируется поле next узла куда заноситься адрес предыдущего узла списка или значение nil если создаваемый узел первый (в списке он будет последним).
4-формируеться значение информационной части узла.
5-формируеться значение указателя В созданный узел становиться первым.
Схема формирования списка.