На этом шаге мы рассмотрим алгоритм включения элемента в стек.
Опишем алгоритм включения звена с информационным полем Элем в стек.
Рис.1. Исходное состояние стека
q = new (node);
(*q).elem = Элем;
Рис.2. Новый элемент
(*q).sled = stk;
Рис.3. Включение элемента в стек
stk = q;
Рис.4. "Настройка" указателя вершины стека
Функция имеет вид:
void W_S (node **stk, int el) //Включение звена с элементом el в стек, // заданный указателем *stk. { node *q; q = new (node); (*q).elem = el; (*q).sled = *stk; *stk = q; }
Заметим, что функцию POSTROENIE() можно переписать следующим образом, если воспользоваться функцией W_S():
void POSTROENIE (node **stk) // Построение стека, заданного указателем *stk с клавиатуры. { int el; *stk = NULL; cin>>el; while (el!=0) { W_S (stk,el); cin>>el;} }
На следующем шаге мы рассмотрим алгоритм удаления элемента из стека.