用数据结构C语言在二叉链表上完成二叉排序树的插入、创建和递归查找算法的实现完整代码
时间: 2023-12-18 15:30:20 浏览: 109
这是基本数据结构及其算法的C++实现,涉及单链表、双链表、栈 、二叉树、并查集、哈夫曼树、平衡二叉树、二叉搜索树等.zip
```c
// 二叉排序树的结点结构
typedef int ElemType;
typedef struct BSTNode {
ElemType key;
struct BSTNode *lchild, *rchild;
} *BSTree, BSTNode;
// 二叉排序树的插入
void InsertBST(BSTree &T, ElemType key) {
if (T == NULL) {
T = (BSTree)malloc(sizeof(BSTNode));
T->key = key;
T->lchild = T->rchild = NULL;
} else if (key < T->key) {
InsertBST(T->lchild, key);
} else if (key > T->key) {
InsertBST(T->rchild, key);
}
}
// 二叉排序树的创建
void CreateBST(BSTree &T, ElemType keys[], int n) {
T = NULL;
for (int i = 0; i < n; i++) {
InsertBST(T, keys[i]);
}
}
// 二叉排序树的递归查找
BSTree SearchBST(BSTree T, ElemType key) {
if (T == NULL || T->key == key) {
return T;
} else if (key < T->key) {
return SearchBST(T->lchild, key);
} else {
return SearchBST(T->rchild, key);
}
}
```
阅读全文