二叉排序树建树的代码c++
时间: 2023-12-17 15:28:54 浏览: 92
二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),它或者是一棵空树,或者是具有下列性质的二叉树:
- 若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值;- 若它的右子树不为空,则右子树上所有结点的值均大于它的根结点的值;
- 它的左右子树也分别为二叉排序树。
下面是用C++实现二叉排序树建树的代码:
```c++
#include <iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
class BinarySearchTree {
public:
BinarySearchTree() : root(NULL) {}
void insert(int val) {
root = insert(root, val);
}
private:
TreeNode* root;
TreeNode* insert(TreeNode* node, int val) {
if (node == NULL) {
return new TreeNode(val);
}
if (val < node->val) {
node->left = insert(node->left, val);
} else if (val > node->val) {
node->right = insert(node->right, val);
}
return node;
}
};
int main() {
BinarySearchTree bst;
bst.insert(5);
bst.insert(3);
bst.insert(7);
bst.insert(2);
bst.insert(4);
bst.insert(6);
bst.insert(8);
return 0;
}
```
在这段代码中,我们定义了一个 `TreeNode` 结构体来表示二叉排序树的节点,其中 `val` 表示节点的值,`left` 和 `right` 分别表示左右子节点。然后我们定义了一个 `BinarySearchTree` 类来实现二叉排序树,其中 `insert` 方法用于向二叉排序树中插入新的节点。最后在 `main` 函数中我们创建了一个二叉排序树对象 `bst`,并向其中插入了一些节点。
阅读全文