二叉排序树(BST):
二叉排序树的非递归查找算法:
bstnode *bst_search(btree t,elemtype key,btnode *&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(btree &t , keytype k){
if(t==NULL){
t=(btree)malloc(soizeof(btnode));
t->key=k;
t->lchild=t->rchild=NULL;
return 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);
}