递归算法要注意逻辑错误如:
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;
}
上面一个是有逻辑错误的,下面的是对的