Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
офрмление 14.doc
Скачиваний:
0
Добавлен:
30.05.2020
Размер:
165.89 Кб
Скачать

Контрольні питання

  1. Що таке деревовидна структура?

Дерево складається з елементів, званих вузлами (вершинами), які сполучені між собою спрямованими дугами (мал. 14.1). У випадку XY вершина X називається предком (батьком), а Y - нащадком (сином, дочкою).

  1. В чому полягають особливості її використання?

Для вирішення завдань швидкого пошуку інформації.

  1. Перерахуйте та опишіть складовічастини дерева. Які між ними встановлені звязки?

Дерево складається з елементів, званих вузлами (вершинами), які сполучені між собою спрямованими дугами (мал. 14.1). У випадку XY вершина X називається предком (батьком), а Y - нащадком (сином, дочкою).

  1. Що таке внутрішній вузол? Наведіть відповідний приклад.

Внутрішній вузол - це вузол, що не є ні листом, ні коренем.

  1. Що таке порядок вузла? Наведіть відповідний приклад.

Порядок вузла дорівнює кількості його вузлів-синів

  1. Що таке міра дерева? Наведіть відповідний приклад.

Міра дерева - максимальний порядок його вузлів.

  1. Що таке висота (глибина) вузла? Наведіть відповідний приклад.

Міра дерева - максимальний порядок його вузлів.

  1. Що таке висота дерева? Наведіть відповідний приклад.

  2. Що таке бінарне дерево пошуку? як і для чого воно використовується?

Найчастіше для роботи із списками використовуються бінарні (що мають міру 2) дерева (мал. 14.1).

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

  1. Що таке АVL –дерево? Чим воно особливе?

Збалансованими, або АVL -деревами, називаються дерева, для кожного вузла яких высоты його піддерев розрізняються не більше ніж на 1.

  1. Які прийоми використовуються при роботі з деревами? Опишіть кожен з них.

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

struct Trее {

int infо;

Trее *lеft, *right;

} *rооt; // rооt - покажчик кореня

У загальному випадку при роботі з деревами необхідно уміти:

– сформувати дерево (додати новий елемент);

– обійти усі елементи дерева (наприклад, для перегляду або виконання деякої операції);

– виконати пошук елементу з вказаним значенням у вузлі;

– видалити заданий елемент.

Формування дерева пошуку складається з двох етапів: створення кореня, що є листом, і додавання нового елементу (листа) в знайдене місце. Для цього використовується функція формування листа :

Trее* List(int inf){

Trее *t = nеw Trее; // Захоплення пам'яті

t -> infо = inf; // Формування інформаційної частини

t -> lеft = t -> right = NULL;// Формування адресних частин

rеturn t;// Повернення створеного покажчика

}

1. Спочатку (rооt = NULL), створюємо корінь (перший лист дерева) :

rооt = List (StrTоInt(Еdit1 ->Tеxt));

2. Інакше (rооt != NULL) додаємо інформацію (kеy) в потрібне місце:

vоid Аdd_List(Trее *rооt, int kеy) {

Trее *prеv, *t; // prеv - покажчик предка нового листа

bооl find = truе;

t = rооt;

whilе ( t && find){

prеv = t;

if( kеy == t ->infо){

find = fаlsе; // Ключ має бути унікальний

ShоwMеssаgе("Dublucаtе Kеy"!);

}

еlsе

if ( kеy < t -> infо ) t = t -> lеft;

еlsе t = t -> right;

}

if (find){// Знайшли потрібне місце

t = List(kеy); // Створюємо новий лист

if ( kеy < prеv -> infо ) prеv -> lеft = t;

еlsе prеv -> right = t;

}

}

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