二叉树的非递归遍历算法

madiankunsortformdk 2020-06-04 11:55:25
教课书上的一段二叉树的非递归中序遍历算法,感觉写错了,最后四行写成了死循化了, 求大神指教
------------
//利用 栈的非递归中序遍历算法遍历二叉树


void Inorder1(BinTree bt)
{ //同样采用二叉链表存储结构,并假定结点值为字符型
SeqStack S; BinTNode *p;
InitStack(&S); Push(&S,bt);
while(!StackEmpty(&S)){
while(GetTop(&S))
Push(&S,GetTop(&S)->lchild); //直到左子树空为止
p=Pop(&S);
if(!StackEmpty(&S)){
printf("%c",GetTop(&S)->data); //访问根结点
p=Pop(&S); Push(&S,p->rchild); //右子树进栈
}
}
}
...全文
193 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱吃鱼的ねこ 2020-06-06
  • 打赏
  • 举报
回复
https://blog.csdn.net/weixin_43982698/article/details/104514746
wowpH 2020-06-06
  • 打赏
  • 举报
回复

void ldr(BiTree T) {
	BiTree t = T;
	Stack S = createStackNode();
	printf("中序遍历:");
	while (t != NULL || isStackEmpty(S) == FALSE) {
		if (t != NULL) {
			push(S, t);
			t = t->lchild;
		} else {
			t = pop(S);
			printf(" %c", t->data);
			t = t->rchild;
		}
	}
	printf("\n");
	clearStack(S);
}

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧