查找兄弟

递归算法要注意逻辑错误如:

char Sibling(BiTree T,TElemType e){
    if (!T)  
        return 0; 
    if(T->data==e)
        return 0;
    if(T->lchild->data==e)
        return T->rchild->data;
    else if(T->rchild->data=e)
        return T->lchild->data;
    else if(T->lchild)
        Sibling(T->lchild,e);
    else if(T->rchild)
        Sibling(T->rchild,e);
    else
        return 0;
}
char Sibling(BiTree T,TElemType e){
    if (!T)  
        return 0; 
    if(T->data==e)
        return 0;
    if(T->lchild->data==e&&T->rchild)
        return T->rchild->data;
    else if(T->rchild->data=e&&T->lchild)
        return T->lchild->data;
    else if(T->lchild)
        Sibling(T->lchild,e);
    else if(T->rchild)
        Sibling(T->rchild,e);
    else
        return 0;
}

上面一个是有逻辑错误的,下面的是对的

猜你喜欢

转载自blog.csdn.net/github_38247751/article/details/72859663