查找二叉排序树

要求在二叉排序树中查找指定的关键字,并在查找过程中输出查找过程中历经的节点。

int SearchBST(BSTNode *bt,KeyType k)
{
    if(bt==NULL)
    {
        return 0;
    }
    else if(bt->key==k)
    {
        printf("%d ",bt->key);
        return 1;
    }
    else if(bt->key<k)
    {
         printf("%d ",bt->key);
         return SearchBST(bt->rchild,k);
    }
    else if(bt->key>k)
    {
         printf("%d ",bt->key);
         return SearchBST(bt->lchild,k);
    }
}

以第一个节点为根节点,后面比根节点大作为右子树,比根节点小作为左子树,依次下去。
对于一棵空的二叉树或者具有如下性质的二叉树:
1.若其左子树不为空,则左子树所有结点的值均小于根结点的值。
2.若其右子树不为空,则右子树所有结点的值均大于根结点的值。
3.其左右子树也是二叉排序树。

posted @ 2022-07-04 11:06  今天又双叒叕在敲代码  阅读(16)  评论(0编辑  收藏  举报