def print_tree(node, level=0, prefix="Root: "):
if node is not None:
print(" " * (level * 4) + prefix + str(node.value))
if node.left is not None or node.right is not None: # Печать дочерних узлов только если они есть
if node.left:
print_tree(node.left, level + 1, "L--- ")
else:
print(" " * ((level + 1) * 4) + "L--- None")
if node.right:
print_tree(node.right, level + 1, "R--- ")
else:
print(" " * ((level + 1) * 4) + "R--- None")
// Функция для визуализации дерева в консоли с отступами и префиксами
void printTree(TreeNode* node, int level = 0, const std::string& prefix = "Root: ") {
// Если узел существует, выводим его значение с соответствующим отступом и префиксом
if (node != nullptr) {
std::cout << std::string(level * 4, ' ') << prefix << node->val << std::endl;
// Если есть хотя бы один дочерний узел, переходим к их выводу
if (node->left != nullptr || node->right != nullptr) {
// Вывод левого дочернего узла
if (node->left) {
printTree(node->left, level + 1, "L--- ");
} else {
std::cout << std::string((level + 1) * 4, ' ') << "L--- None" << std::endl;
}
// Вывод правого дочернего узла
if (node->right) {
printTree(node->right, level + 1, "R--- ");
} else {
std::cout << std::string((level + 1) * 4, ' ') << "R--- None" << std::endl;
}
}
}
}