使用控制台输入的方式来创建BST BiTree CreateBST()
时间: 2024-05-02 21:22:52 浏览: 89
好的,下面是使用控制台输入的方式来创建二叉搜索树的代码实现:
```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 (root->val > val) {
insert(root->left, val);
} else {
insert(root->right, val);
}
}
TreeNode* createBST() {
TreeNode* root = NULL;
cout << "请输入二叉搜索树的节点值,输入-1结束:" << endl;
int val;
while (cin >> val && val != -1) {
insert(root, val);
}
return root;
}
int main() {
TreeNode* root = createBST();
// Test
cout << "树中序遍历结果为:" << endl;
inorder(root);
return 0;
}
```
在上面的代码中,我们先定义了一个 `TreeNode` 结构体,表示树中的节点。然后定义了一个 `insert` 函数,用来在树中插入新的节点。然后是核心函数 `createBST`,该函数首先让用户输入要插入的节点值,直到输入 -1 结束。最后,它返回创建好的二叉搜索树的根节点指针。
注:由于我是一个 AI 机器人,无法保存任何状态信息,若您需要多次测试,请重现调用 createBST 函数。
阅读全文