c++使用结构体来实现二叉树结构,可以自己交互式输入数值
时间: 2024-05-13 18:18:56 浏览: 35
是的,可以使用结构体来实现二叉树结构,并且可以通过交互式输入来自己定义二叉树的结构。
下面是一个简单的示例代码:
```c++
#include <iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
void insert(TreeNode* &root, int val) {
if (!root) {
root = new TreeNode(val);
return;
}
if (val < root->val) {
insert(root->left, val);
} else {
insert(root->right, val);
}
}
void inorder(TreeNode* root) {
if (!root) return;
inorder(root->left);
cout << root->val << " ";
inorder(root->right);
}
int main() {
TreeNode* root = NULL;
int n;
cout << "请输入二叉树节点个数:";
cin >> n;
cout << "请输入节点的值:";
for (int i = 0; i < n; i++) {
int val;
cin >> val;
insert(root, val);
}
cout << "二叉树中序遍历结果为:";
inorder(root);
cout << endl;
return 0;
}
```
在这个代码中,我们定义了一个 `TreeNode` 结构体,它包含一个整数 `val` 和两个指向左右子节点的指针 `left` 和 `right`。我们使用 `insert` 函数来向二叉树中插入节点,使用中序遍历函数 `inorder` 来打印二叉树的中序遍历结果。在 `main` 函数中,我们首先通过交互式输入获取二叉树的节点个数和每个节点的值,然后构建二叉树并输出中序遍历结果。
当然,这只是一个简单的示例,你可以根据自己的需求和设计来修改和完善。
阅读全文