使用C++语言创建二叉树,用户可以输入内容并生成二叉树
时间: 2024-01-23 20:49:27 浏览: 20
好的,以下是用C++语言实现的二叉树代码,可以让用户输入内容并生成二叉树。
```cpp
#include <iostream>
using namespace std;
// 二叉树的结构体
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 创建二叉树
TreeNode* createBinaryTree() {
int val;
cin >> val;
if (val == -1) { // 输入-1表示该节点为空
return NULL;
}
TreeNode* root = new TreeNode(val);
root->left = createBinaryTree();
root->right = createBinaryTree();
return root;
}
// 中序遍历二叉树
void inorderTraversal(TreeNode* root) {
if (root) {
inorderTraversal(root->left);
cout << root->val << " ";
inorderTraversal(root->right);
}
}
int main() {
cout << "请输入二叉树节点的值,-1表示该节点为空:" << endl;
TreeNode* root = createBinaryTree();
cout << "中序遍历二叉树的结果为:" << endl;
inorderTraversal(root);
return 0;
}
```
程序运行后,用户可以输入二叉树节点的值,-1表示该节点为空,例如输入以下内容:
```
1 2 4 -1 -1 5 -1 -1 3 -1 6 7 -1 -1 -1
```
表示创建如下的二叉树:
```
1
/ \
2 3
/ / \
4 6 7
\
5
```
程序输出中序遍历的结果:
```
4 2 5 1 6 3 7
```