写二叉排序树的创建的C语言代码
时间: 2024-02-23 20:02:28 浏览: 16
二叉排序树的创建可以通过递归方式实现,具体的C语言代码如下所示:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉排序树的结构体
typedef struct BSTreeNode {
int data; // 节点存储的数据
struct BSTreeNode *left; // 左子树
struct BSTreeNode *right; // 右子树
} BSTreeNode;
// 插入节点到二叉排序树中
BSTreeNode *insertBSTreeNode(BSTreeNode *root, int data) {
// 如果是空树,则创建新节点作为根节点
if (root == NULL) {
BSTreeNode *newNode = (BSTreeNode *) malloc(sizeof(BSTreeNode));
newNode->data = data;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
// 如果插入的数据小于根节点的数据,则插入到左子树中
if (data < root->data) {
root->left = insertBSTreeNode(root->left, data);
}
// 如果插入的数据大于根节点的数据,则插入到右子树中
else if (data > root->data) {
root->right = insertBSTreeNode(root->right, data);
}
// 如果插入的数据等于根节点的数据,则不插入
return root;
}
int main() {
// 创建一个二叉排序树
BSTreeNode *root = NULL;
root = insertBSTreeNode(root, 5);
root = insertBSTreeNode(root, 3);
root = insertBSTreeNode(root, 7);
root = insertBSTreeNode(root, 1);
root = insertBSTreeNode(root, 9);
// 输出二叉排序树中的数据
printf("Inorder traversal of the constructed BST: ");
inorder(root);
printf("\n");
return 0;
}
```
在上面的代码中,我们定义了一个二叉排序树的结构体,并且实现了插入节点到二叉排序树中的函数。具体的插入过程是通过递归实现的,如果插入的数据小于根节点的数据,则插入到左子树中;如果插入的数据大于根节点的数据,则插入到右子树中;如果插入的数据等于根节点的数据,则不插入。最后,我们创建了一个二叉排序树并输出其中的数据。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)