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

Питання до захисту :

Особливості зв’язаного списку.

Відповідь:____________________________________________________

_____________________________________________________________

Основні операції зі зв’язними списками.

Відповідь:____________________________________________________

_____________________________________________________________

В яких випадках раціональне використання зв’язних списків?

Відповідь:____________________________________________________

_____________________________________________________________

Роботу виконав Роботу перевірив

Лабораторна робота №4

«Дерева. Алгоритми обходу»

1 Тема роботи: Використання дерев в алгоритмах обходу.

2 Мета роботи: Навчиться працювати з ієрархічними структурами даних.

3 Теоретичний матеріал

Нелінійні структури даних відображають більш складні відносини порядку між об'єктами, ніж відносини слідування.

Найбільш важливим видом нелінійних структур даних є дерева. Вони виражають відносини: предок, нащадок, брат, і т.д.

Формально дерево (tree) визначається як кінцеве безліч Т одного або більше вузлів з наступними властивостями:

1. існує один виділений вузол, а саме - корінь (root) даного дерева Т;

2. інші вузли (за винятком кореня) розподілені серед m ≥ 0 непересічних множин Т1, .... , Тm називаються піддеревами (subtrees) даного кореня.

Як бачите, це визначення є рекурсивним: дерево визначено на основі поняття дерева. З цього визначення випливає, що кожен вузол дерева є коренем деякого піддерева даного дерева. Кількість піддерев вузла називається ступенем (degree) цього вузла. Вузол зі ступенем нуль називається кінцевим вузлом (terminal node) або листом (leaf). Некінцевим вузол називається вузлом розгалуження (branch node). Рівень (level) вузла по відношенню до дерева T визначається рекурсивно таким чином.

Якщо не вважати різними два дерева, які відрізняються тільки відносним порядком піддерев вузлів, то дерево називається орієнтованим (oriented), оскільки при цьому має значення тільки відносна орієнтація вузлів, а не їх порядок.

Ліс (forest) - це безліч (зазвичай впорядковане), що не містить жодного непересічного дерева або містить декілька непересічних дерев. Основні властивості дерева:

1. корінь не має предків

2. кожен вузол за винятком кореня, має єдиного предка

3. кожен вузол пов'язаний з коренем єдиним шляхом, тобто в дереві немає замкнутих циклів

4. якщо відносний порядок наступних вузлів має значення, дерева називаються впорядкованими.

Бінарні (двійкові) дерева.

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

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

Максимальне число вузлів в бінарному дереві заввишки h становить:

N2 = 2h - 1

Максимальне число вузлів в бінарному дереві на вузлі i:

Ni = 2i - 1

Висотою повного бінарного, створеного з n вузлів визначається як нижня межа логарифма з числа вузлів +1:

H =

Алгоритми обходу бінарних дерев.

Обхід - алгоритм обробки, при якому вузол дерева обробляється єдиний раз однаковим чином в певних порядку.

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

Лівосторонні алгоритми:

1. Спадний (прямий) обхід к - л - п (корінь ліве праве)

a. Обробити кореневий вузол

b. У спадному порядку обійти ліве піддерево кореневого вузла

c. У спадному порядку обійти праве піддерево кореневого вузла

2. Зростаючий обхід л - п - к

a. Обійти в зростаючому порядку ліве піддерево

b. Обійти в зростаючому порядку праве піддерево кореневого вузла

c. Обробити кореневий вузол

3. Змішаний (зворотний) обхід л - до - п

a. У змішаному порядку обійти ліве піддерево кореневого вузла

b. Обробити кореневий вузол

c. У змішаному порядку обійти праве піддерево кореневого вузла