Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lektsii_OP / T15

.pdf
Скачиваний:
95
Добавлен:
17.03.2016
Размер:
1.5 Mб
Скачать

void AddNodes (node **сurrent, int an);

{ node *tmp;

 

 

int nl, nr;

 

 

if (an = = 0)

 

// вершин для розміщення нема

current = NULL;

 

// формуємо порожнє посилання

else

 

 

{ nl = an / 2;

// кількість вершин ліворуч

nr = an - nl - 1;

 

// кількість вершин праворуч

tmp = new node;

 

// створення кореня піддерева

AddNodes (& tmp->left, nl)

// створення лівого піддерева

AddNodes (& tmp->right, nr);

//створення правого піддерева

current = tmp;

 

// повернення адреси створеного кореня

}

 

 

}

 

 

Запуск процесу побудови, зазвичай, виконується з головної програми за допомогою виклику AddNodes (&root, n). У цьому виклику фактичний параметр n обов'язково повинен мати конкретне значення, наприклад - задану користувачем кількість вершин в дереві, що будується. Однак, перший фактичний параметр root, будучи вихідним, отримає своє значення лише після відпрацювання всіх рекурсивних викликів, при поверненні в головну програму.

61

Соседние файлы в папке lektsii_OP