二叉树的遍历技巧
来源:互联网 发布:linux环境apache ab 编辑:程序博客网 时间:2024/05/16 06:28
二叉树遍历其实是比较容易的,只是有的老师教什么经过某个点几次,什么去了又回到某个点那种方法比较繁琐
我就讲讲自己的方法
遍历要注意一点,只要他的下方还有子树,那要看一看是否该遍历
1.先序
先结点,再左枝,再右枝
无论怎么遍历我们都应该注意到的一点就是大方向,比如先序,先遍历A,然后遍历大的左指数,然后遍历大的右指数。开始,A是根结点,两边是他的子树,所以,我们先遍历A,然后遍历大左子树,因为对于大左子树来说B是根结点,所以先遍历B,然后遍历以根结点为B的左子树,这时D又成了根结点,遍历D,然后遍历H,再遍历I,接着,我们又遍历B为根结点的右子树,右边,先遍历右子树根结点E,然后遍历他的左子树,这样以A为根结点的坐子树就遍历完了。然后右子树也很容易得出CFG,所以顺序ABDHIEJCFG
2.中序
先左子树,再结点,再右子树
把握大方向,先左,我们要从最左边那个开始,先H,然后D,然后I,因为DHI和EJ相当于是以B为根结点的左右子树,所以遍历B,然后B,然后B的右子树,右子树也应该是左中右,所以先J再E,反正只要这棵树下面还有树,我们就要考虑是否要先遍历它,好了HDIBJE了哈,大方向上大左子树完了,现在右子树吗,NO,大方向上我说过A是大左子树和大右子树的根结点,所以左中右,把A遍历了,然后大右子树,因为C下方还有子树,所以我们考虑是否先遍历它的子树呢,对,所以先F,再C,再G。不过假如我们把F划掉,那就是CG,即便他下面的有子树,但是我说过,左中右,它没来,所以就CG了。就这样,HDIBJEAFCG.
3.后序
我不想强调太多,大方向,你懂的,先大左,再大右,最后根结点,所以,最左边那个是谁呢,先H,然后I,注意了,子树DHI和EJ相当于是B为根结点的左右子树,所以先看EJ子树,这里E下有子树的,左右中,所以J,然后E没右子树呢,所以直接E,注意前面我说的左中右,所以该B了,这样大左就完了,然后大右,方法一样,大右一完,最后就该是最大方向上的A了,就这样,HIDJEBFGCA
我叙述不大行,语文功底差,怕别人不懂,所以有点啰嗦,不过希望对学到树的程序爱好者有所帮助。
- 二叉树的遍历技巧
- 二叉树遍历技巧
- 二叉树遍历小技巧
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 二叉树的遍历
- 最短路径分析算法in OpenGraphRouter初探
- (转/学习)C++ 方式的内存分配与释放 new 和 delete
- 我谈完美主义性格的人!
- ncurses库
- IIS配置MVC网站
- 二叉树的遍历技巧
- SDL 在指定窗口中绘图
- 在线hash密码破解网站列表
- 迭代器模式和组合模式(管理良好的集合)
- 可伸缩性最佳实践:来自eBay的经验
- 操作系统学习
- 类的内存结构
- 仓储系统立项
- 设头结点的好处以及如何设头结点