P169 T12

//注:BiTree为指针类型
BiTree find(BiTree T, int k)
{
    if(k < 1 || k > T.count) return NULL;
    if(T->lchild)
    {
        if(T->lchild->count + 2 == k) return T;
        else if(T->lchild->count + 2 > k) return find(T->lchild, k);
        else if(T->rchild) return find(T->rchild, k - (T->lchild->count + 2));
        else return NULL;
    }
    else
    {
        if(k == 1) return T;
        else if(T->rchild) return find(T->rchild, k - 1);
        else return NULL;
    }
}

 

posted @ 2019-07-18 14:45  WTSRUVF  阅读(165)  评论(0编辑  收藏  举报