Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 основи програмування книга.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.77 Mб
Скачать

13.1. Стандартні динамічні структури

У програмуванні часто використовують наступні динамічні структури: списки, стеки, черги, дерева, графи і т.д. Точні математичні визначення цих структур, як ми побачимо нижче, використовують рекурсивні описання. Для попередніх пояснень краще всього використовувати графічні зображення.

Покажчик на

початок списку

Р

Q

Покажчик на

елемент, що

оброблюється

Рис. 13.4. Список – одна з типових динамічних структур.

Список – це такий спосіб представлення послідовності однотипних елементів, при якому вставка і вилучення елемента допускаються у довільному її місці, а доступ до елемента, що оброблюється, здійснюється послідовним переглядом від початку списку до його кінця.

В ершина стека

Р

Q

Покажчик на елемент,

що оброблюється

Рис. 13.5. Стек – одна з типових динамічних структур.

Стек – це такий спосіб представлення послідовності однотипних елементів, при якому вставка і вилучення елемента допускаються тільки на її початку – вершині стека. Доступ до інших елементів стека не підтримується методами обробки стека.

Р

Покажчик на

початок черги

Q

Покажчик на

кінець черги

Рис. 13.6. Черга – одна з типових динамічних структур.

Черга – це такий спосіб представлення послідовності однотипних елементів, при якому вставка елемента допускається тільки в її хвості, а вилучення – тільки на початку. Доступ до інших елементів черги не підтримується методами обробки черги.

Списки, черги і стеки – це лінійні динамічні структури. Вони представляють з себе так звані послідовності записів, у кожному з яких, за винятком останнього, покажчик виставлений на наступний. Відрізняються вони один від одного способом обробки: зміна списку здійснюється вставкою або вилученням елемента у довільному місці. У стеку елементи добавляють або вилучають в одному й тому ж місці – вершині стека. У черзі записи добавляються у хвіст, а вилучаються з голови.

Покажчик Корінь дерева

Н а дерево

Рис. 13.7. Дерево – одна з типових динамічних структур.

Дерева – це структури даних, що розгалужуються. Кожний запис у дереві, за винятком одного – кореневого – має одного попередника. Кожний елемент дерева, за винятком так званого листя, вказує на декілька “спадкоємців”. Точне визначення дерева як динамічної структури даних буде дано нижче.

Граф

Покажчик

н а вершину

Рис. 13.8. Граф – динамічна структура загального вигляду.

Граф утворюють декілька записів, покажчики яких виставлені довільним чином. У програмуванні використовуються і інші типи динамічних інформаційних структур (двозв’язні списки, кільця, і т.д.).

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