Перевірка на наявність елементів в стеку. p align="justify">. Якщо в стеці є елементи, то вказівником стека присвоюється попередня запис (тобто вершиною стека стає попередня запис), і звільняється виділена під вершину стека пам'ять (за допомогою функції Dispose). Якщо ж в стеку немає елементів, то програма виведе повідомлення, що стек порожній. br/>В
Рис. 2. Видалення елемента з стека
Код програми представлений у Додатку 1 Лістинг 2. p align="justify">. Висновок стека. p align="justify"> У процедурі Printall реалізований алгоритм виведення стека згідно блок-схемі на малюнку 3. br/>В
Рис. 3. Висновок стека
У цій процедурі виконуються наступні дії:
. Вказівником присвоюється вершина стека (тобто стек розглядається з його вершини). p align="justify">. Обнуляється лічильник номери елементів (j). p align="justify">. Перевірка на наявність елементів в стеку. p align="justify">. Якщо в стеці є елементи, то починається цикл, поки вказівник не буде вказувати на nil, виконуються дії:
. Збільшується лічильник номери записів (j) на 1. p align="justify">. Висновок номера запису (j). p align="justify">. Висновок самого запису. p align="justify">. Вказівником стека присвоюється попередня запис (тобто вершиною стека стає попередня запис). p align="justify"> Цикл закінчує свою роботу, коли в стеку більше немає елементів (покажчик дорівнює nil).
. Якщо в стеці немає елементів, то програма виведе запис, що стек порожній. p align="justify"> Код програми представлений у Додатку 1 Лістинг 3. p align="justify">. Висновок елемента стека. p align="justify"> У процедурі Print реалізований алгоритм виведення елемента стека згідно блок-схемі на малюнку 4. У цій процедурі виконуються наступні дії:
. Програма запитує у користувача номер запису, яку потрібно вивести. p align="justify">. Користувач вводить номер запису (j). p align="justify">. Вказівником присвоюється вершина стека (тобто стек розглядається з його вершини). p align="justify">. Перевіряється, чи є в стеку запис з даним номером (чи не є j негативним числом, чи не перевищує j загальна кількість елементів, що не порожній чи стек). p align="justify">. Якщо номер запису виходить за межі існуючих записів або в стеку немає елементів, то програма виведе, що такого елемента не існує. p align="justify"> Якщо ж номер запису вказаний коректно, запис існує і стік не порожній, то програма продовжує свою роботу.
. Лічильнику номери елементів (i) присвоюється значення 1. p align="justify">. Поки вказівник не буде вказувати на nil або поки номер елемента менше номера, вказаного користувачем відбуватиметься цикл:
. Вказівником стека присвоюється попередня запис (тобто вершиною стека стає попередня запис). p align="justify">. Лічильник номери елементів (...