用c++写二叉搜索树的插入算法
时间: 2023-03-20 11:00:21 浏览: 131
二叉搜索树 C++实现
二叉搜索树是一种常见的数据结构,它具有快速的查找和插入操作。以下是用 C 语言写的二叉搜索树的插入算法:
```c
struct Node {
int data;
struct Node* left;
struct Node* right;
};
struct Node* newNode(int data) {
struct Node* node = (struct Node*)malloc(sizeof(struct Node));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
struct Node* insert(struct Node* root, int data) {
if (root == NULL) {
return newNode(data);
} else if (data <= root->data) {
root->left = insert(root->left, data);
} else {
root->right = insert(root->right, data);
}
return root;
}
```
在这个算法中,我们定义了一个结构体 `Node` 来表示二叉搜索树的节点,每个节点包含一个整数值 `data`,以及左右子树指针 `left` 和 `right`。我们还定义了一个函数 `newNode`,它用于创建一个新节点,并将其初始化为指定的值。在 `insert` 函数中,我们首先检查根节点是否为空,如果为空,则创建一个新节点并将其作为根节点返回。否则,我们比较要插入的值和根节点的值,如果小于等于根节点的值,则递归调用 `insert` 函数,并将值插入到左子树中;否则,递归调用 `insert` 函数,并将值插入到右子树中。最后,返回根节点。
使用这个算法,我们可以构建一个二叉搜索树,并将任意数量的值插入到树中。
阅读全文