c++如何创建二叉排序树
时间: 2024-04-28 09:04:25 浏览: 41
创建二叉排序树的基本思路是:将结点按照大小关系插入到树中,较小的结点插入到左子树,较大的结点插入到右子树,如果插入的结点已经存在,则不做任何操作。以下是一个简单的 C++ 代码示例:
```c++
#include <iostream>
using namespace std;
// 定义二叉排序树结点结构体
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
// 插入结点到二叉排序树中
TreeNode* insert(TreeNode* root, int val) {
if (root == nullptr) {
return new TreeNode(val);
}
if (val < root->val) {
root->left = insert(root->left, val);
} else if (val > root->val) {
root->right = insert(root->right, val);
}
return root;
}
int main() {
// 创建二叉排序树
TreeNode* root = nullptr;
root = insert(root, 5);
insert(root, 3);
insert(root, 7);
insert(root, 1);
insert(root, 9);
// 遍历二叉排序树
cout << "Inorder traversal:\n";
inorder(root);
cout << endl;
return 0;
}
```
在代码中,我们使用了结构体 TreeNode 来表示二叉排序树的结点,其中包含结点的值 val 和指向左右子树的指针 left 和 right。insert 函数用于插入结点,如果根节点为空,则直接创建一个新的结点,否则根据大小关系将结点插入到左子树或右子树中。
最后,我们可以使用中序遍历遍历二叉排序树,输出结点的值,以验证树的正确性。
阅读全文