二叉排序树定义
typedef struct BTNode {
int val;
struct BTNode *lchild;
struct BTNode *rchild;
} BSTNode, *BiTree;
查找
BTNode *BST_Search(BiTree T, int key, BTNode *p) {
p = NULL;
while(key < T->val && key != T->val) {
p = T;
if(key < T->val) T = T->lchild;
else T = T->rchild;
}
return T;
}
插入
int BST_Insert(BiTree &T, int k) {
if(T == NULL) { //原树为空,新插入的记录为根结点
T = (BiTree)malloc(sizeof(BTNode));
T->val = k;
T->lchild = T->rchild = NULL;
return 1;
} else if(k == T->val)
return 0;
else if(k < T->val)
return BST_Insert(T->lchild, k);
else
return BST_Insert(T->rchild, k);
}
构造
void Create_BST(BiTree &T, int *A, int n) {
T = NULL;
for(int i = 0; i < n; i++) {
BST_Insert(T, A[i]);
}
}
原文链接: https://www.cnblogs.com/0202zc/p/13236127.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/362268
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!