Gistrec icon

Print Tree

Gistrec | PRO | 03/05/18 08:11:34 PM UTC | 0 ⭐ | 727 👁️ | Never ⏰ | []
C++ |

940 B

|

None

|

0 👍

/

0 👎

    // Напечатать дерево
    // Сверху печатается левое поддерево
    // Справа печатается правое поддерево
    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

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎