0xC0000005: 写入位置 0x00000000 时发生访问冲突 C语言 二叉树非递归...
发布网友
发布时间:2024-09-29 14:41
我来回答
共1个回答
热心网友
时间:2024-10-07 06:10
你在主函数进行非递归调用时用到栈s,但s是一个指针,而你调用之前没有构造s,即s是一个野指针。并且栈的结构也定义错误, 正确的主函数应该如下
void main(){
BiTree T;
struct su{
BiTNode *base;
BiTNode *top;
}*s;
T = CreateBiTree();//建立
s = (su*) malloc (sizeof(su)); //构造一个栈
s->base = s->top = (BiTNode*) malloc (X * sizeof(BiTNode)); //初始化为空栈,容量X自己去定
feidigui(s,T);
PreOrderTraverse(T);//输出
PostOrderTraverse(T);
getchar();
}