Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ in các nút ở cấp độ lẻ của cây nhị phân

Thảo luận chương trình in các nút ở cấp độ lẻ của cây nhị phân cho trước. Cấp độ gốc coi là 1, cấp độ lẻ tiếp theo là 3, 5...

Ví dụ cây nhị phân:

Chương trình C++ in các nút ở cấp độ lẻ của cây nhị phân

Các nút ở cấp độ lẻ: 1, 4, 5, 6.

Ví dụ mã nguồn

#include <bits/stdc++.h>
using namespace std;

struct Node {
    int data;
    Node* left, *right;
};

// In nút ở cấp độ lẻ
void print_onodes(Node *root, bool is_odd = true) {
    if (root == NULL)
        return;
    if (is_odd)
        cout << root->data << " ";
    print_onodes(root->left, !is_odd);
    print_onodes(root->right, !is_odd);
}

// Tạo nút mới
struct Node* create_node(int data) {
    struct Node* node = new Node;
    node->data = data;
    node->left = node->right = NULL;
    return (node);
}

int main() {
    struct Node* root = create_node(13);
    root->left = create_node(21);
    root->right = create_node(43);
    root->left->left = create_node(64);
    root->left->right = create_node(85);
    print_onodes(root);
    return 0;
}

Kết quả đầu ra

13 64 85