我想我的程序写为能计算双亲结点。但是我改称这样了:
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]]