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; }
代码说明:
节点结构体 (
TreeNode
):每个节点包含数据
data
和指向左、右子节点的指针left
和right
。树类 (
Tree
):包含一个私有成员
root
指向树的根节点。insert
函数:递归地插入新节点,根据值确定放置在左子树或右子树。inorder
函数:递归进行中序遍历,输出节点的值。主函数:
创建
Tree
对象。输入要插入的整数,输入 -1 结束。
调用
inorder
函数输出树的节点。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892