当前位置:首页 C++ > 正文

C++定义一个tree类,然后输入,输出

作者:野牛程序员:2024-11-01 13:10:46 C++阅读 2229
C++定义一个tree类,然后输入,输出

C++定义一个tree类,然后输入,输出

以下是一个简单的 C++ 树类实现示例,包含节点的定义、插入、输出和遍历功能:

示例代码:

#include <iostream>
using namespace std;

// 定义树的节点结构体
struct TreeNode {
    int data;
    TreeNode* left;
    TreeNode* right;

    TreeNode(int value) : data(value), left(nullptr), right(nullptr) {}
};

// 定义树类
class Tree {
private:
    TreeNode* root;

    // 递归插入节点
    TreeNode* insert(TreeNode* node, int value) {
        if (node == nullptr) {
            return new TreeNode(value);
        }
        if (value < node->data) {
            node->left = insert(node->left, value);
        } else {
            node->right = insert(node->right, value);
        }
        return node;
    }

    // 递归中序遍历
    void inorder(TreeNode* node) {
        if (node != nullptr) {
            inorder(node->left);
            cout << node->data << " ";
            inorder(node->right);
        }
    }

public:
    // 构造函数
    Tree() : root(nullptr) {}

    // 插入节点
    void insert(int value) {
        root = insert(root, value);
    }

    // 中序遍历
    void inorder() {
        inorder(root);
        cout << endl; // 换行
    }
};

int main() {
    Tree tree;
    int value;

    cout << "输入要插入的整数(输入-1结束):\n";
    while (true) {
        cin >> value;
        if (value == -1) break; // 输入 -1 结束
        tree.insert(value);
    }

    cout << "中序遍历输出树的节点:\n";
    tree.inorder();

    return 0;
}

代码说明:

  1. 节点结构体 (TreeNode)

    • 每个节点包含数据 data 和指向左、右子节点的指针 leftright

  2. 树类 (Tree)

    • 包含一个私有成员 root 指向树的根节点。

    • insert 函数:递归地插入新节点,根据值确定放置在左子树或右子树。

    • inorder 函数:递归进行中序遍历,输出节点的值。

  3. 主函数

    • 创建 Tree 对象。

    • 输入要插入的整数,输入 -1 结束。

    • 调用 inorder 函数输出树的节点。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • C++
  • 最新推荐

    热门点击