Удаление элемента из стека

Функция удаления элемента из стека:

void del (STACK **top) { STACK *old_item = *top; if(*top) { *top =(*top)->next; free(old_item); } } //*top – указатель на вершину стека //old_item – указатель на удаляемый элемент; //если стек не пуст (*top!=NULL) //переносим указатель *top на следующий элемент стека, вершиной стека становится предыдущий элемент последовательности //уничтожаем элемент old_item

Пример. Пусть из стека, состоящего из элементов (‘a’,’b’,’c’) (элементы указаны в порядке их добавления в стек), представленного в программе переменной s, необходимо удалить элемент ‘c’. Для этого вызывается функция del:

del(&s);

На рис. 4 показано происходящее после каждого шага изменения.

Рис. 4 – Удаление элемента из стека


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: