二叉树前序、中序、后序非递归遍历实现(C语言)
来源:互联网 发布:围棋软件免费下载 编辑:程序博客网 时间:2024/06/11 09:25
一、非递归前序遍历
void TreversePreorder(struct BTree *T){ struct BTree *stack[1000],*p=T; int top=0; while(p||top) { if(p) { printf("%d ",p->data); stack[top++]=p; p=p->left; } else { p=stack[--top]; p=p->right; } }}
二、非递归中序遍历
void TreverseInorder(struct BTree *T){ struct BTree *stack[1000],*p=T; int top=0; while(p||top) { if(p) { stack[top++]=p; p=p->left; } else { p=stack[--top]; printf("%d ",p->data); p=p->right; } }}
三、非递归后序遍历
void TreversePostorder(struct BTree *T){ struct BTree *stack[1000],*p=T,*r=NULL; int top=0; while(p||top) { if(p) { stack[top++]=p; p=p->left; } else { p=stack[top-1]; if(p->right&&p->right!=r)//判断右子树,不为空且未被访问则需要先遍历 { p=p->right; stack[top++]=p;//当前右子树压栈 p=p->left; } else//右子树为空,则直接访问 { p=stack[--top]; printf("%d ",p->data); r=p;//r保存节点 p=NULL; } } }}
阅读全文
0 0
- 二叉树前序、中序、后序非递归遍历实现(C语言)
- 二叉树前序、中序、后序递归遍历实现(C语言)
- 数据结构 二叉树的递归算法、前序、中序、后序遍历(c语言实现)
- c语言原生实现二叉树的 非递归 中序 先序 后序 遍历
- c语言实现二叉树先序,中序,后序(递归),层次遍历,求叶子节点个数及树的深度,下一篇写非递归的遍历
- 二叉树的先序、中序和后序的非递归遍历(C语言实现)
- c/c++实现二叉树前序,中序和后序的递归和非递归遍历
- 二叉树的遍历C实现(非递归)—中序遍历
- 二叉树前序,中序,后序非递归遍历
- 二叉树前序、中序、后序非递归遍历
- 二叉树前序、中序、后序非递归遍历
- 中序遍历二叉树(非递归算法 c语言)
- 二叉树遍历的递归和非递归实现(C语言)
- C语言数据结构实现二叉树递归与非递归遍历(数据结构第四次实验)
- C语言非递归实现二叉树的先序、中序、后序、层序遍历
- 树和二叉树---C语言利用栈实现二叉树的递归、非递归的前、中、后序遍历
- 二叉树遍历的c语言非递归实现
- 二叉树非递归遍历C语言实现
- java日期工具类DateUtil-续一
- 设计模式之模板模式
- 哈夫曼树简介及实现
- java 提交表单、文件防止脏数据
- SQL语句中limit的用法
- 二叉树前序、中序、后序非递归遍历实现(C语言)
- Tensorflow_Basic Usage
- 二叉树的建立,遍历查找
- ViewPager 详解(二)——四大函数
- Java vs. Kotlin:应该使用Kotlin进行Android开发吗?
- 【BZOJ2440】完全平方数(中山市选2011)-二分答案+莫比乌斯函数应用
- (135)点光源
- 设计模式-----观察者模式(Obsever)
- react-native 学习之旅