Добавление нового элемента в стек
Определена структура, которая будет использоваться в последующих примерах:
#define STACK struct List
STACK
{
char info;
STACK *next;
};
Функция добавления элемента в стек:
void push (STACK **top, char item) { STACK *new_item; new_item = new STACK; new_item->info = item; new_item->next = *top; *top = new_item; } | //*top – указатель на вершину стека, //item – символ, который заносится в стек; //указатель на новый элемент стека; //создаем элемент стека; //заполняем поле info; //присоединяем в конец стека новый элемент //вершиной стека становится новый элемент; |
Пример. Пусть в стек, состоящий из элементов (‘a’,’b’,’c’) (элементы указаны в порядке их добавления в стек), представленный в программе переменной s, необходимо добавить новый элемент ‘d’. Для этого вызывается функция push:
push(&s,’d’);
На рис. 3 показано происходящее после каждого шага изменения.
Рис. 3 – Добавление элемента в стек