//这是遍历处理的树的格式
static void load_bitre(bitre & t) {
char s;
scanf("%c",&s);
t=(bitre)malloc(sizeof(bnode));
if (s=='.'){
t=0;
}
else{
t->data=s;
load_bitre(t->lchild);
load_bitre(t->rchild);
}
//这是我企图中序遍历代码
static void displayWith(bitre & root){
bitre stack[100];//栈访问指针
int flag=-1;//递归调用语句编号
bitre oil=root;
stack[++flag]=oil;
while (flag!=-1)
{
while (oil){
stack[++flag]=oil->lchild;//这后面就是先序
oil=oil->lchild;
}
oil=stack[--flag];/*事实上我觉得在这加printf中序遍历逻辑上很合理,输出也确实是中序,但是会有报警,这就是我遇到的问题*/
if(oil)
printf("%c",oil->data);
if(flag!=-1){
stack[flag]=oil->rchild;//在这后面加printf就是后序
oil=stack[flag];
}
}
}
想要非递归中序遍历一棵二叉树,这段代码为什么会出现读取的访问冲突?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- wlj1234 2021-04-29 11:39关注
oil 为真时,不能保证oil->lchild也为真,stack中是由空指针的,调用空指针oil->data自然会出错
while (oil)改为while (oil&&oil->lchild)
解决 1无用
悬赏问题
- ¥100 有偿寻云闪付SDK转URL技术
- ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
- ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
- ¥15 远程安装一下vasp
- ¥15 自己做的代码上传图片时,报错
- ¥15 Lingo线性规划模型怎么搭建
- ¥15 关于#python#的问题,请各位专家解答!区间型正向化
- ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
- ¥50 comsol温度场仿真无法模拟微米级激光光斑
- ¥15 上传图片时提交的存储类型