Печать двоичного дерева в красивом способе, используя C ++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Печать двоичного дерева в красивом способе, используя C ++

Сообщение 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

Подробнее здесь: https://stackoverflow.com/questions/368 ... ay-using-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»