C++定义一个tree类,然后输入,输出
作者:野牛程序员:2024-11-01 13:10:46 C++阅读 2587
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

