算法学习 - 树的三种遍历(递归实现)先序遍历,中序遍历,后序遍历
来源:互联网 发布:今晨送货单软件注册码 编辑:程序博客网 时间:2024/05/29 17:13
树的遍历
这三种遍历方法其实都很简单的,举例来说:
a / \b c
这个是例子下面讲下这三个是如何遍历的。
下面都是递归方法,非递归方法请看我另一篇博客:http://blog.csdn.net/alps1992/article/details/38308285
struct TreeNode;typedef TreeNode* Node;typedef int EleType;struct TreeNode{ Node lchild; Node rchild; EleType data;};
先序遍历
先序遍历,就是从上到下,从左到右,遇到一个就遍历,上面这个例子遍历的序列就是:a b c
递归代码如下:
void PreOrderTree(Node node){ if (node != NULL) { printf("%d\n",node->data); PreOrderTree(node->lchild); PreOrderTree(node->rchild); }}
中序遍历
中序遍历的序列:b a c
其实中序遍历就是先从左到右,来遍历,先找到最左的,然后找到,它的右孩子,没有的话再找父亲,输出,最后输出右兄弟。
代码如下:
}void InOrderTree(Node node){ if (node != NULL) { InOrderTree(node->lchild); printf("%d\n",node->data); InOrderTree(node->rchild); }}
后序遍历
后序遍历的序列:a c b
其实后序遍历就是把中序遍历的父亲在它右兄弟输出后再输出。
代码如下:
<pre name="code" class="cpp">void AfterPreOrderTree(Node node){ if (node != NULL) { AfterPreOrderTree(node->lchild); AfterPreOrderTree(node->rchild); printf("%d\n",node->data); }}
5 0
- 算法学习 - 树的三种遍历(递归实现)先序遍历,中序遍历,后序遍历
- 非递归算法实现树的先序遍历,中序遍历,后序遍历;也有树的层次遍历。
- 二叉树T 的先序遍历、中序遍历、后序遍历(递归实现)
- 实现二叉树的先序遍历、中序遍历、后序遍历的递归非递归算法以及层次遍历算法
- 二叉树的先序遍历、中序遍历、后序遍历、层次遍历的递归实现
- c++实现二叉树的先序遍历,中序遍历,后序遍历(递归方法)
- 二叉树的中序、先序、后序遍历非递归遍历算法(使用堆栈,用循环实现)
- 算法:二叉树的先序遍历、中序遍历、后序遍历(递归及非递归方式)的java代码实现
- java实现二叉树的构建以及三种遍历方法(先序遍历,中序遍历,后续遍历)
- 二叉树的遍历(2)--先序遍历,中序遍历,后序遍历(非递归)
- 二叉树遍历的非递归算法(先序、中序、后序)代码实现
- 算法学习 - 表达树的建立(后缀表达式法),树的先序遍历,中序遍历,后序遍历(非递归)
- [转载]树的先序遍历,中序遍历,后序遍历的非递归写法
- 二叉树 非递归 先序遍历 中序遍历 后序遍历 层次遍历
- 递归法遍历二叉树 (先序遍历 中序遍历 后序遍历)
- 二叉树的遍历(1)--先序遍历,中序遍历,后序遍历
- 二叉树的遍历代码(先序遍历,中序遍历,后序遍历)
- 树--递归实现先、中、后遍历,层序遍历和树的深度
- EJB(二)图示EJB的"helloworld"
- 检查点
- Android OkHttp的要注意的地方
- Android之ListView滚动到底后自动加载数据
- SMP中怎么识别代码运行在哪个核中?
- 算法学习 - 树的三种遍历(递归实现)先序遍历,中序遍历,后序遍历
- linux centos5.5 usb wireless card setup,USB无线网卡配置
- Coding X年后,要想走向人生巅峰,还得读啥书?
- 2015年web前端7个发展趋势
- 浅谈各类RAD快速开发平台存在的意义
- 矛盾集合体——static的相关用法介绍
- NYOJ33 蛇形填数
- 从今天开始,尽量多写博客,记录生活点滴
- discuz实现百度站内搜索论坛样式(辅助插件)