Курсовая работа: Динамические структуры данных. Решение задач. Стек. Очередь. Дек
Writeln;
I : =1; { указатель вершины ставится на вершину стека}
While And Do Begin
Writeln;
Inc
End ;
End; {list}
Для добавления элемента в стек надо, чтобы этот элемент был типа элемента стека. Процедуру добавления можно описать следующим образом:
Procedure push ;
Var i : Integer ; {процедура вставки}
Begin
For i: =n Downto 2 Do s: =s;
S : = x
End ; { push }
Процедура добавления: сначала мы должны освободить место под новый элемент, для этого сдвигаем все элементы стека по массиву вправо и только после добавляем новый в свободную ячейку.
Функция «взять элемент» в переменную заключена в том, чтобы считать элемент в переменную и удалить его из стека. Функции мы присваиваем значение вершины стека, после чего сдвигаем весь стек на одну ячейку влево. В цикле присваиваем I – тому I+1 значение. Последнему члену массива – «дно» стека присваиваем –1000.
Function pop : typeelem ; { считывание с удалением}
Var i: Integer;
Begin
Pop: =s;
For i: =1 To n-1 Do s: =s;
S : =-1000
End ; { pop }
Функция вершина стека: значению функции присваиваем значение вершины стека.
Function stacktop : typeelem ; { считывание без удаления }
Begin
Stacktop: =s
End; {stacktop}
Функция стек пуст: если значение вершины стека не равняется –1000, то функции присваиваем значение логической переменной FALSE .
Function empty: Boolean; { проверка на пустоту }