0 / 0 / 0
Регистрация: 05.04.2011
Сообщений: 7
|
|
1 | |
Распечатка бинарного дерева поиска05.04.2011, 23:04. Показов 4137. Ответов 1
Метки нет (Все метки)
Много где висит функция
Код
void print(int deep, ptree p) { if(p) { print(deep + 1, p->l); for ( int i = 0; i < deep; i ++ ) printf(" " ); printf(">%d",p->val); printf("\n"); print(deep + 1, p->r); } } Код
7 3 6 1 5 2 4 Код
1 2 3 4 5 6 7 P.S. Что то забыл указать, дерево не полное и не почти полное, не сбалансированное. Короче говоря выполняется только то, что у каждого узла не более 2х детей и правое дитё >= значению узла, а левое < значения узла. В остальном - полный разгул.
0
|
05.04.2011, 23:04 | |
Ответы с готовыми решениями:
1
Создание бинарного дерева поиска Реализация бинарного дерева поиска Итератор дерева бинарного поиска Реализация бинарного дерева поиска |
30 / 30 / 13
Регистрация: 04.04.2011
Сообщений: 86
|
||||||
06.04.2011, 00:51 | 2 | |||||
Сообщение было отмечено xMURNx как решение
Решение
Ну алгоритм, как по мне, должен быть примерно такой:
1. Заходим в узел. счетчик k = 0 2. Прокручиваем влево/вправо, влево/вправо и т.д. пока не пусто. Каждый раз счётчик увеличиваем. 3. Записываем узел в массив, к примеру, двумерный, в первый индекс - получившееся k, а во второй - элемент дерева, увеличиваем число элементов массива (пусть это будет n) Считаем кол-во элементов массива И еще в какой-нибудь kmax записать k корня (оно же наибольшее). Ну и всё. Потом идём по массиву, как-то так:
0
|
06.04.2011, 00:51 | |
06.04.2011, 00:51 | |
Помогаю со студенческими работами здесь
2
Алгоритм бинарного дерева поиска Итератор для бинарного дерева поиска. Вычисление высоты бинарного дерева поиска на С++ Удаления узла из бинарного дерева поиска Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |