Функция просмотра
Приведем простой пример функции вывода элементов (ключей) дерева, использующий правила обхода 2.
void View ( Tree *t, int level ) {
if ( t ) {
View ( t -> Right , level+1); // Вывод правого поддерева
for ( int i=0; i<level; i++) printf(" ");
printf(“ %d\n”, t -> info);
View( t -> Left , level+1); // Вывод левого поддерева
}
}
Обращение к функции View будет иметь вид View(Root, 0);
Функция View рекурсивная, вторым ее параметром является переменная, определяющая, на каком уровне (level) находится узел. Корень находится на уровне «0». Значения узлов выводятся по горизонтали так, что корень находится слева. Перед значением узла для имитации структуры дерева выводится количество пробелов, пропорциональное уровню узла. Если закомментировать цикл печати пробелов, значения ключей будут выведены просто в столбик.
Для последовательно введенных ключей 10 (корень), 25, 20, 6, 21, 8, 1, 30, будет построено дерево, вывод которого на экран с помощью функции View будет иметь следующий вид:
Дата добавления: 2015-09-11; просмотров: 767;