二叉排序树插入结点的非递归算法
时间:2010-06-02 来源:sjtlqy
/* 非递归算法的二叉树的插入
int InsertBST(BSTree *bst, KeyType K)
{
BSTree f, q, s;
s=(BSTree)malloc(sizeof(BSTNode));
s->key = K;
s->lchild = NULL;
s->rchild = NULL;
if ( *bst == NULL )
{
*bst = s;
return 1;
}
f = NULL;
q = *bst;
while( q )
{
if ( q->key == K )
return 0;
if( K < q->key )
{
f = q;
q = q->lchild;
}
else
{
f = q;
q = q->rchild;
}
}
if ( K < f->key )
f->lchild = s;
else
f->rchild = s;
return 1;
}
*/
二叉排序树的查找的非递归算法
BSTree SearchBST(BSTree bst, KeyType key) /*在根指针bst所指二叉排序树bst上,查找关键字等于key的结点,若查找成功,返回指向该元素结点指针,否则返回空指针*/ { BSTree q; q=bst; while(q) { if (q->key == key) return q; /*查找成功*/ if (q->key > key) q=q->lchild; /*在左子树中查找*/ else q=q->rchild; /*在右子树中查找*/ } return NULL; /*查找失败*/ }/*SearchBST*/
二叉排序树的查找的非递归算法
BSTree SearchBST(BSTree bst, KeyType key) /*在根指针bst所指二叉排序树bst上,查找关键字等于key的结点,若查找成功,返回指向该元素结点指针,否则返回空指针*/ { BSTree q; q=bst; while(q) { if (q->key == key) return q; /*查找成功*/ if (q->key > key) q=q->lchild; /*在左子树中查找*/ else q=q->rchild; /*在右子树中查找*/ } return NULL; /*查找失败*/ }/*SearchBST*/
相关阅读 更多 +