Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Fylthy animal.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
907.88 Кб
Скачать
  1. Стеки – механізм повернення.

Класичним застосуванням стеків є виконання програм, які виконують процедури. Коли програма повинна виконати процедуру, комп’ютер повинен перемкнути увагу на цю процедуру. Коли ж процедура вимагає виконання іншої процедури — механізм ускладнюється.

Наприкінці всього циклу виконання комп’ютер повинен повертатися до початкової програми у місці переходу до процедури.

  1. Стеки – реалізація стеків.

Для реалізації стекової структури в пам’яті комп’ютера резервується безперервний блок комірок пам’яті, щоб стек міг розміститися там не залежно від додавання чи видалення елементів. Один з кінців цього блоку позначається як основа стеку. В основу стеку вставляється перший елемент. При додаванні, новий елемент вставляється після попередника, при цьому стек збільшується в другу сторону. Для забезпечення механізму запису поточної адреси вершини стеку використовується додаткова комірка пам’яті, яка називається вказівником на вершину стеку. Вказівник на вершину стеку завжди визначає поточне місце вершини стеку.

Механізм роботи є наступним:

    • Для вставки елементу до стеку потрібно:

      • змінити поточне значення вершини стеку, щоб воно вказувало на вільну позицію

      • помістити в поточну позицію вершини стеку новий елемент

    • Для отримання елементу зі стеку потрібно:

      • зчитати дані, на які вказує вершина стеку

      • відкоригувати значення вершини стеку таким чином, щоб воно вказувало на наступний (нижчий) елемент стеку.

При організації стеку в безперервному блоці комірок пам’яті різниця між концептуальною та реальною структурами є невеликою. Однак неможливо визначити розмір стеку, який буде завжди гарантовано задовольняти поставленим умовам. В такому випадку слід реалізовувати стек у вигляді зв’язаного списку.

Тоді можна уникнути обмежень розміру стеку у випадку використання безперервного блоку.

Однак така реалізація стеку буде відрізнятися від комп’ютерної реалізації.

  1. Поняття черги

На противагу стеку, черга є таким списком, в якому додавання елементів відбувається на одному кінці, а видалення — на іншому

Подібні структури відносяться до систем зберігання та працюють по принципу:

FIFO — first in, first out перший прийшов, перший вийшов)

Кінці черги отримали свої назви відповідно до своїх ролей:

початок — кінець черги, де відбувається видалення елементів

кінець (хвіст) — кінець черги, де відбувається додавання елементів

Чергу можна реалізувати аналогічно до реалізації стеку, єдиною відмінністю при цьому буде використання двох вказівників замість одного:

вказівник початку черги — відслідковує положення початку черги

вказівник кінця черги — відслідковує положення кінця черги

Коли черга пуста, обидва вказівники вказують на оду і ту ж ділянку пам’яті. Видалення елементу з черги означає отримання елементу, на який показує вказівник початку черги, з подальшою зміною його значення таким чином, щоб він вказував на наступний за видаленим елемент черги

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]