读书人

数据结构中有一段代码看不懂请大伙儿

发布时间: 2013-04-02 12:35:26 作者: rapoo

数据结构中有一段代码看不懂,请大家看看。

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;
}

像这样自己测试,对应哪个。
另外,不好的编程风格造成的后果就像这样

读书人网 >C语言

热点推荐