c++在二叉排序树中插入结点的算法,在此基础上实现构建二叉排序树的算法。
时间: 2024-03-10 13:48:15 浏览: 98
C++的二叉排序树算法
在二叉排序树中插入结点的算法如下:
```c++
// 定义二叉排序树的结点
struct BSTNode {
int val; // 结点的值
BSTNode* left; // 左子树指针
BSTNode* right; // 右子树指针
BSTNode(int val) : val(val), left(nullptr), right(nullptr) {}
};
// 插入结点的函数
void insert(BSTNode* &root, int val) {
if (!root) {
root = new BSTNode(val);
return;
}
if (root->val > val) {
insert(root->left, val);
}
else {
insert(root->right, val);
}
}
```
在此基础上,我们可以实现构建二叉排序树的算法。具体思路是,读入一组数据,依次将每个数据插入到二叉排序树中。代码如下:
```c++
// 构建二叉排序树的函数
BSTNode* build_tree() {
BSTNode* root = nullptr;
int val;
while (cin >> val) {
insert(root, val);
}
return root;
}
```
调用上述函数,即可构建出一颗二叉排序树。
阅读全文