Глава 4 Типовые алгоритмы обработки информации
____________________________________________________________________
Pop_Stack. Сначала реализуем стек с помощью массива, рисунок 4.26.
Указатель |
|
|
|
|
|
|
|
|
|
|
|
|
|
Начало стека |
|
|
|
|
|
|
|
|
|
|
|
СТЕК |
|
Верхушка стека |
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Конец стека |
|
|
b |
|
|
|
|
c |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N
Глубина стека Рис. 4.26 Реализация стека на основе массивов.
Из рисунка видно, что для реализации стека нам нужны два массива, мас-
сив-указатель, назовем его ukaz[1..3] и массив-тело стека, назовем его
CTEK. Для определенности пусть он состоит из 100 элементов, т.е. глубина сте-
ка равна 100 элементам. Пусть, также для определенности, элементами стека являются просто целые числа. На практике элементами стека могут являться и более сложные структуры, например, записи. В массиве ukaz первый элемент,
т.е. ukaz[1] содержит индекс массива СТЕК, равный началу стека, обычно это
1. Элемент ukaz[3] содержит индекс массива СТЕК, равный концу стека, т.е.
заданной глубине стека N = 100 и обычно совпадает с максимальным размером массива СТЕК. Элемент массива ukaz[2] – это индекс в массиве СТЕК, куда будет помещен новый элемент стека, а ukaz[2]-1 это индекс, по которому из
СТЕК можно будет взять последний помещенный в него элемент.
Программа будет выводить на экран меню, с помощью которого можно помещать новый элемент в стек, брать элемент из верхушки стека и просматри-