数据结构中有一段代码看不懂,请大家看看。
Status PreOrderTraverse(BiTree T,Status (*Visit)(ElemType e))
{
if(T)
{
if(Visit(T->data))
if(PreOrderTraverse(T->lchile,Visit))
if(PreOrderTraverse(T->rchild,Visit))
return ok;
return error;//这个return error 对应的事哪个if语句?
}
else
return ok;
}
Status PreOrderTraverse(BiTree T,Status (*Visit)(ElemType e)) {
if (T) {
if (Visit(T->data)
&& PreOrderTraverse(T->lchile,Visit)
&& PreOrderTraverse(T->rchild,Visit))
return ok;
else return error;
} else return ok;
}
#include<stdio.h>
int test();
int main(void)
{
int a;
a = test();
printf("a = %d\n",a);
return 0;
}
int test()
{
if(1)
{
if(1)
if(1)
if(1)
return 1;
return 2;
}
else
return 3;
}