我想我的程序写为能计算双亲结点。但是我改称这样了:
int n=0;
Status PreOrderTraverse(BiTree T,Status(* visit)(TElemType
)){
if(T){
if(visit(T->data))
n++;
if(PreOrderTraverse(T->lchild,visit))
if(PreOrderTraverse(T->rchild,visit))
return OK;
return ERROR;
}
else return OK;
return n;
}
还是错的。。。。会不会是把n看成了局部变量,所以导致每次用PreOderTraverse时,都将n的值初始化呢?
我想知道这个代码哪里不对。。因为我换了种算法,试验做了。但是这个哪里错了呢?
[[it] 本帖最后由 盆中线 于 2008-12-2 17:19 编辑 [/it]]