Добавление нового элемента в стек

Определена структура, которая будет использоваться в последующих примерах:

#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 – Добавление элемента в стек