二叉搜索树的构建与应用 实践通过插入操作创建二叉搜索树 c语言实现
时间: 2023-07-24 21:10:05 浏览: 67
c语言实现二叉搜索树
好的,我可以帮你回答这个问题。
二叉搜索树是一种常用的数据结构,它具有以下特点:
1. 每个节点都有一个值,左子树中的所有节点的值都小于该节点的值,右子树中的所有节点的值都大于该节点的值。
2. 每个节点都有左子树和右子树,它们也分别是二叉搜索树。
下面是一个简单的 C 语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
void insert(struct TreeNode** root, int val) {
if (*root == NULL) {
*root = (struct TreeNode*)malloc(sizeof(struct TreeNode));
(*root)->val = val;
(*root)->left = NULL;
(*root)->right = NULL;
return;
}
if (val < (*root)->val) {
insert(&((*root)->left), val);
} else if (val > (*root)->val) {
insert(&((*root)->right), val);
}
}
void inorder(struct TreeNode* root) {
if (root == NULL) return;
inorder(root->left);
printf("%d ", root->val);
inorder(root->right);
}
int main() {
struct TreeNode* root = NULL;
insert(&root, 5);
insert(&root, 3);
insert(&root, 7);
insert(&root, 1);
insert(&root, 9);
inorder(root);
return 0;
}
```
在这个实现中,我们定义了一个 `TreeNode` 结构体,表示树的节点。然后我们实现了一个 `insert` 函数,用于向树中插入一个节点。在插入节点时,我们需要遵循二叉搜索树的特点,将节点插入到合适的位置。最后,我们实现了一个 `inorder` 函数,用于按照中序遍历的方式输出树中的所有节点。
这个程序的输出结果是 `1 3 5 7 9`,符合我们预期的结果。
二叉搜索树可以应用于很多场景,例如查找、排序、去重等等。希望这个实现对你有所帮助。
阅读全文