Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ_метод_вказівки_до_лаб_роб_2011.doc
Скачиваний:
7
Добавлен:
04.12.2018
Размер:
980.48 Кб
Скачать

Теоретичні відомості

Дерево — це сукупність елементів, які називаються вузлами (один з них визначений як корінь), та відношень (“батьківських”), що утворюють ієрархічну структуру вузлів.

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

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

Формально дерево можна рекурентно визначити таким чином:

  1. Один вузол є деревом. Він також є коренем цього дерева.

  2. Нехай n ― це вузол, а Т1, Т2, ..., Тk дерева з коренями n1, n2, … , nk відповідно. Можна побудувати нове дерево, зробивши n батьком вузлів n1, n2, … , nk. В цьому дереві n буде коренем, а Т1, Т2, ..., Тk ― піддеревами цього кореня. Вузли n1, n2, … , nk називаються синами вузла n.

Часто у визначення включають поняття нульового дерева, тобто “дерева” без вузлів. Таке дерево ми будемо позначати символом Л.

Шляхом з вузла n1 у вузол nk називається послідовність вузлів n1, n2, … , nk, де для всіх і, 1<= i <= k, вузол ni є батьком вузла ni+1.

Довжина шляху — це число, на одиницю менше за число вузлів, які складають цей шлях. Таким чином, шляхом нульової довжини буде шлях з будь-якого вузла до самого себе.

Якщо існує шлях з вузла а в b, то в цьому випадку вузол b — наступник вузла а. Зауважимо, що будь-який вузол одночасно є і попередником, і наступником самого себе. Попередник або наступник вузла, що не є таким для самого себе, називається істиним попередником або істинним наступником відповідно; в дереві тільки корінь не має істинного попередника. Вузол, що не має істинних наступників, називається листком.

Обхід дерева рекурсивно можна визначити наступним чином:

  • Якщо дерево Т ― нульове дерево, то в список обходу заноситься порожній запис.

  • Якщо дерево Т складається з одного вузла , то в список обходу записується цей вузол.

  • Нехай Т ― це дерево з коренем n і піддеревами Т1, Т2,..., Тk ,як показано на Рис.1.

Рис. 1. Дерево Т

  1. При проходженні в прямому порядку (тобто при прямому упорядкуванні) вузлів дерева Т спочатку відвідують корінь n, потім вузли піддерева Т1, потім вузли піддерева Т2 і т.д. Останніми відвідуються вузли піддерева Тk.

  2. Під час проходження дерева в оберненому порядку спочатку відвідують в оберненому порядку всі вузли піддерева Т1, потім послідовно відвідуються всі вузли піддерев Т2, ..., Тк також в оберненому порядку, останнім відвідується корінь n.

  3. Під час проходження дерева в симетричному порядку спочатку відвідують в симетричному порядку всі вузли піддерева Т1, потім корінь n, потім послідовно в симетричному порядку відвідують всі вузли піддерев Т2, ...,Тk .