Работа со стеком
Для работы со стеком, в отличие от очереди, необходимо иметь один основной указатель на вершину стека (возьмем идентификатор Р), который используется для выделения и освобождения памяти элементов стека.
Создание стека
1. Исходное состояние.
2. Выделение памяти под первый элемент стека и внесение в него информации:
new(p);
p^.inf:=x;
p^.link:=nil;
3. Установка вершины стека Endp на созданный элемент:
endp:=p;
Добавление элемента стека
1. Исходное состояние.
2. Выделение памяти под новый элемент стека:
new(p);
3. Внесение значения в информационное поле нового элемента и установка связи между ним и "старой" вершиной стека Endp:
p^.inf:=x;
p^.link:=endp;
4. Перемещение вершины стека Endp на новый элемент:
endp:=p;
Удаление элемента стека
1. Исходное состояние.
2. Извлечение информации из информационного поля вершины стека Endp в переменную x и установка на вершину стека вспомогательного указателя Р:
x:=endp^.inf;
p:=endp;
3. Перемещение указателя вершины стека Endp на следующий элемент и освобождение памяти, занимаемой "старой" вершиной стека:
endp:=p^.link;
dispose(p);