118
Указатель st1 передвигается на следующий узел.
3. С помощью строки
free(old_item);
освобождается блок памяти, на который указывает old_item (то есть удаляется
узел).
На рис. 2.33.11 приведена иллюстрация работы функции pop() на 5-м шаге.
Рис. 2.33.11
Шаг 6. Если значение указателя st1 равно 0, то переменной error
присваивается значение 1. (Переменная error сигнализирует об ошибках при
работе со стеком. Если error=1, то произошла ошибка. Если error=0, то ошибки
нет.)
Шаг 7. Функция возвращает значение переменной old_info (то есть функция
возвращает число, вытолкнутое из стека). Если операция pop выполнена успешно,
то error=0, в противном случае error=1.
Функция peek()
Шаг 1.
Параметрами данной функции являются: а) &st1 — адрес указателя
st1 ( то есть адрес указателя, хранящего адрес стека), б) &error — адрес
переменной error. Функция возвращает значение типа int.
Шаг 2. Если значение указателя st1 не равно NULL, то переменной error
присваивается значение 0, и функция возвращает значение верхнего элемента
стека (значение переменной info).
Шаг 3. Если значение указателя st1 равно NULL, то переменной error
присваивается
значение 1, и функция возвращает значение 0. (Если в стеке не
менее одного элемента, то error=0; если в стеке нет элементов, то error=1.)
Результат работы программы
Указатель стека после ввода числа 1200 2204
Указатель стека после ввода числа 13 2212
Указатель стека после ввода числа 125 2220
peek(st1)=125