Шаг 20.
Включение звена в стек

    На этом шаге мы рассмотрим алгоритм включения элемента в стек.

    Опишем алгоритм включения звена с информационным полем Элем в стек.

  1. Исходное состояние стека:


    Рис.1. Исходное состояние стека

  2. Создаем новый элемент:
        q = new (node);
        (*q).elem = Элем;
    


    Рис.2. Новый элемент

  3. Включаем элемент в начало стека:
        (*q).sled = stk;
    


    Рис.3. Включение элемента в стек

  4. "Настроим" указатель вершины стека:
        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;}
}

    На следующем шаге мы рассмотрим алгоритм удаления элемента из стека.




Предыдущий шаг Содержание Следующий шаг