Печать двоичного дерева в красивом способе, используя 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

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