Я немного запутался, пытаясь распечатать двоичное дерево, как показано ниже, в C++:
8
/ \
/ \
/ \
5 10
/ \ / \
2 6 9 11
< /code>
Я знаю, как получить высоту дерева и количество узлов на каждом уровне, но я не мог понять, как установить правильное количество пробелов между Корень и второй уровень (есть 3 строки под корнем для 3 уровней, но я считаю, что это не каждый раз, я думал, что это может быть в 3 раза выше высоты для больших деревьев). < /p>
Я хотел бы получить некоторую помощь, чтобы распечатать эти пространства в рядах и количество строк между рядами. Спасибо. < /p>
Я кодирую в c ++ < /p>
Get height
int tree::getHeight(No *node) {
if (node == NULL) return 0;
return 1 + max(getHeight(node->esq), getHeight(node->dir));
}
Get number of nodes per line
void tree::getLine(const No *root, int depth, vector& vals){
int placeholder = 10;
if (depth chave);
return;
}
if (root->esq != nullptr)
getLine(root->esq, depth-1, vals);
else if (depth-1 dir != nullptr)
getLine(root->dir, depth-1, vals);
else if (depth-1
Подробнее здесь: https://stackoverflow.com/questions/368 ... ay-using-c
Печать двоичного дерева в красивом способе, используя C ++ ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1737743740
Anonymous
Я немного запутался, пытаясь распечатать двоичное дерево, как показано ниже, в C++:
8
/ \
/ \
/ \
5 10
/ \ / \
2 6 9 11
< /code>
Я знаю, как получить высоту дерева и количество узлов на каждом уровне, но я не мог понять, как установить правильное количество пробелов между Корень и второй уровень (есть 3 строки под корнем для 3 уровней, но я считаю, что это не каждый раз, я думал, что это может быть в 3 раза выше высоты для больших деревьев). < /p>
Я хотел бы получить некоторую помощь, чтобы распечатать эти пространства в рядах и количество строк между рядами. Спасибо. < /p>
Я кодирую в c ++ < /p>
Get height
int tree::getHeight(No *node) {
if (node == NULL) return 0;
return 1 + max(getHeight(node->esq), getHeight(node->dir));
}
Get number of nodes per line
void tree::getLine(const No *root, int depth, vector& vals){
int placeholder = 10;
if (depth chave);
return;
}
if (root->esq != nullptr)
getLine(root->esq, depth-1, vals);
else if (depth-1 dir != nullptr)
getLine(root->dir, depth-1, vals);
else if (depth-1
Подробнее здесь: [url]https://stackoverflow.com/questions/36802354/print-binary-tree-in-a-pretty-way-using-c[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия