包含:二叉排序树的查找,插入,创建。
查找
BSTNode *BST_Search(BiTree T ,ElemType key , BSTNode *&p){
p = NULL;
while(T != NULL && key != T->data){
p = T;
if(key < T->data)
T = T->lchild;
else
T = T->rchild;
}
return T;
}
插入
int BST_Insert(BiTree T , ElemType k){
if(T == NULL){
T = (BiTree)malloc(sizeof(BSTNode));
T->key = k;
T->lchild = T->rchild = NULL;
return 1; // 1表示成功
}
else if(k == T->key){
return 0;
}
else if(k < T->key){
return BST_Insert(T->lchild , k); // 左子树
}
else{
return BST_Insert(T->rchild , k); // 右子树
}
}
构造
void Creat_BST(BiTree &T , ElemType str[] , int n){
T = NULL;
for(int i = 0 ; i < n ; i ++){
BST_Insert(T , str[i]);
}
}
删除代码
理解即可,此处不给出。