Занесение элемента в стек производится аналогично вставке нового элемента в начало списка. Процедура занесения элемента в стек должна содержать два параметра: первый задает вершину стека, в который нужно занести элемент, второй – заносимое значение элемента стека.
Процедура формирования стека будет иметь следующий вид:
Procedure FormStack;
Var
Stack: EXST; {Текущая переменная}
Digit: integer;
Procedure writeStack(Var u: EXST; Digit: integer);
Var
x: EXST;
Begin
new(x); {выделяем память под хранение нового элемента стека}
x^.Data:= Digit; {заполняем поле данных элемента}
x^.Next:= u; {новый элемент "связываем" со стеком}
u:= x; {созданный элемент определяем как вершину стека}
End;
Begin
Stack:= Nil; {инициализация стека}
writeln('Введите элементы стека. Окончание ввода – 0');
read(Digit);
while Digit <> 0 do
begin
writeStack(Stack, Digit);
read(Digit);
end;
End;