登录
登录 注册新账号
注册
已有账号登录

这种C语言下的二叉树递归遍历是可用的, 它工作的非常完美!

void PreOrder(BiTree T){
    if(T!=NULL){
        visit(T);
        printf("T->lchild: %dn", T->lchild);
        PreOrder(T->lchild);
        PreOrder(T->rchild);
    }
}

然而, 当我尝试得到一个完全前序序列, 我做了如下修改, 却得到了runtime error. debug的时候发现是一个段错误.

void PreOrder(BiTree T){
    if(T!=NULL){
        visit(T);
        printf("T->lchild: %dn", T->lchild);
        PreOrder(T->lchild);
        PreOrder(T->rchild);
    }
    else{
        printf('#');
    }
}

我不理解下面这种代码为什么不能拿来递归呢?

1 个回答

第二个printf,不能传入字符,应该是字符指针。

printf("#");

撰写答案