c++

c++二叉树建立和遍历的方法是什么

小亿
84
2024-02-28 15:43:18
栏目: 编程语言

在C++中,可以通过定义一个二叉树节点的结构体来表示二叉树节点,然后通过递归的方式来建立和遍历二叉树。

以下是一个示例代码:

#include <iostream>

struct TreeNode {
    int data;
    TreeNode* left;
    TreeNode* right;
    TreeNode(int x) : data(x), left(nullptr), right(nullptr) {}
};

void insert(TreeNode* &root, int data) {
    if (root == nullptr) {
        root = new TreeNode(data);
    } else {
        if (data < root->data) {
            insert(root->left, data);
        } else {
            insert(root->right, data);
        }
    }
}

void inorderTraversal(TreeNode* root) {
    if (root == nullptr) {
        return;
    }
    inorderTraversal(root->left);
    std::cout << root->data << " ";
    inorderTraversal(root->right);
}

int main() {
    TreeNode* root = nullptr;
    int arr[] = {5, 3, 8, 2, 4, 7, 9};
    for (int num : arr) {
        insert(root, num);
    }

    std::cout << "Inorder traversal: ";
    inorderTraversal(root);
    std::cout << std::endl;

    return 0;
}

在上面的代码中,定义了一个二叉树节点结构体TreeNode,包含数据域data以及左右子节点指针leftright。然后通过insert函数递归地插入节点来建立二叉树,通过inorderTraversal函数进行中序遍历输出二叉树中的所有节点数据。

可以根据需要修改代码实现其他遍历方式,如前序遍历和后序遍历。

0
看了该问题的人还看了