// Напечатать дерево
// Сверху печатается левое поддерево
// Справа печатается правое поддерево
enum state { ROOT, LEFT, RIGHT };
void print() {
if (root != nullptr) print(root, "", ROOT);
}
void print(Node* node, std::string prefix, state last) {
std::cout << prefix;
if (last == ROOT) {
} else if (last == LEFT) {
std::cout << "|-- П: ";
prefix.append(" ");
} else {
std::cout << "|-- Л: ";
prefix.append("| ");
}
std::cout << node->name << " (Оценка: " << node->average_mark << ")" << std::endl;
if (node->left == nullptr && node->right == nullptr) return;
if (node->left != nullptr) print(node->left, prefix, RIGHT);
else std::cout << prefix << "|-- Л: NULL" << std::endl;
if (node->right != nullptr) print(node->right, prefix, LEFT);
else std::cout << prefix << "|-- П: NULL" << std::endl;
}
Comments
0 B
|👍
/👎