Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





Алгоритм обходу дерева являє собою спосіб методичного дослідження вершин дерева, при якому кожна вершина проглядається тільки один раз. Повне проходження дерева дає лінійне розміщення вершин, після якого можна говорите про "наступну вершину" як таку, що розміщується або перед даною вершиною, або після неї. Розглянемо три алгоритми обходу бінарного дерева на прикладі дерева, зображеного на рис. 5.5, а.

 

 

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

а) бінарне дерево; б) низхідний обхід: зверху вниз;

в) змішаний обхід: зліва направо; г) висхідний обхід: знизу – вверх.

1. Послідовність н изхідного обходу (рис.5.5,6): обробка кореня, низхідний обхід лівого піддерева, низхідний обхід правого піддерева. Вершини дерева проглядаються в послідовності: 1, 2, 4, 3, 5, 7, 6.

2. Послідовність з мішаного обходу (рис. 5.5,в): змішаний обхід лівого піддерева, обробка кореня, змішаний обхід правого піддерева. Вершини дерева проглядають в послідовності: 4, 2, 1, 5, 7, 3, 6.

3. Послідовність в исхідного обходу (рис.5.5,г): висхідний обхід лівого піддерева, висхідний обхід правого піддерева, обробка кореня. Вершини дерева проглядаються у послідовності: 4, 2, 7, 5, 6, З, 1.

 

5.1.3. Зображення в пам‘яті комп‘ютера графоподібних структур

Ознайомимось із загальною задачею зображення графа G=(N,E) у вигляді спискової структури, тобто запам'ятовування його на зчепленій пам'яті. Розглянемо орієнтовані графи. Для кожної вершини n існує множина вершин E(n), з якими вона з’єднана ребрами. Тоді один із способів зображення такого графа полягає в тому, щоб кожній вершині співставити одну ділянку списку, в якій одне поле відвести під мітку вершини, якщо така існує, і щонайменше |Е(п)| полів - під множину вказівників, тобто ребер. Якщо задано ваги ребер, то потрібно ще додатково |Е (п)| полів для зберігання цих ваг. Це один із способів зберігання графів у зчепленій пам`яті.

Але інформацію про ребра можна відділити від інформації про вершини, для чого потрібно ввести два типи ділянок (одну для вершини, другу для ребер) і зв‘язати ці ділянки в один ланцюг. Крім того, всі ребра можна зберігати окремо, по одній ділянці на кожне ребро, і зв‘язувати ці ділянки в один ланцюг.

Таким способом зображення графів можна користуватися також для графів з двосторонньою орієнтацією, тоді кожний напрямок треба зображувати незалежно, що створює дублювання інформації, і при зміні графа під час роботи потрібно було б змінювати його в двох місцях. Цю незручність можна ліквідувати за допомогою петель. В цьому випадку для кожного ребра (а, b) потрібна буде зв‘язуюча ділянка, в якій зберігався б вказівник, що веде через інші вершини у вершину а, і вказівник, що веде через інші вершини у вершину b, а також додаткові поля для зберігання ваг і міток.

Отже, для зображення в пам‘яті графів існує декілька способів:

1) використовується матриця (або матриця суміжності, або матриця інцедентності), яка зберігається стандартним способом у векторній пам‘яті;

2) використовується спискова структура у вигляді черги, в якій вказівники відповідають ребрам графа;

3) використовується спискова динамічна структура, де для кожної нової підмножини пам‘ять виділяється в процесі побудови фрагмента графа.

Кожний з цих способів має свої позитивні і негативні сторони. Який із них більше підходить для зображення графа, залежить від кількості ребер.

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

Дерева можна зберігати в пам‘яті також у послідовному вигляді, але при цьому вибирається певний напрямок обходу дерева. Тоді зберігаються тільки вершини дерева, а зв‘язки (ребра) опускаються, оскільки порядок розташування вузлів вказує на зв‘язок між ними.

Сортування на деревах. Метод вибірки з дерева. Пірамідальне сортування. Алгоритмічна складність методів.

ЛЕКЦІЯ 6

Date: 2015-07-27; view: 632; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию