二叉排序树建树的代码
时间: 2023-12-15 22:33:30 浏览: 83
二叉排序树是一种特殊的二叉树,它的左子树上的所有节点的值都小于根节点的值,右子树上的所有节点的值都大于根节点的值。因此,二叉排序树可以用来实现快速的查找、插入和删除操作。下面是一个简单的C++二叉排序树建树的代码:
```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 == NULL) {
root = new TreeNode(val);
return;
}
if (val < root->val) {
insert(root->left, val);
} else {
insert(root->right, val);
}
}
int main() {
TreeNode* root = NULL;
int n;
cin >> n;
for (int i = 0; i < n; i++) {
int val;
cin >> val;
insert(root, val);
}
return 0;
}
```
在这个代码中,我们定义了一个结构体`TreeNode`表示二叉排序树的节点,其中包含一个整数值`val`和两个指向左右子树的指针`left`和`right`。我们还定义了一个`insert`函数用来向二叉排序树中插入一个节点。在`insert`函数中,我们首先判断当前节点是否为空,如果为空,则直接创建一个新节点并将其作为根节点。否则,我们比较要插入的值和当前节点的值的大小关系,如果要插入的值小于当前节点的值,则递归地将其插入到左子树中,否则递归地将其插入到右子树中。最后,在`main`函数中,我们读入要插入的节点数和节点的值,并依次将其插入到二叉排序树中。
阅读全文