树 与 二叉树 的遍历
2016-02-15 18:28
211 查看
树也是图,遍历方法自然也分为广度优先和深度优先。但对于树,由于结点的排序有规则,所以其遍历结果产生唯一的结点序列,而不像 图 那样产生多种可能的结果。
(1)广度优先遍历
自根部向下,依次访问完第一层的所有结点后,然后逐层访问各子树上同一层次的所有结点,以此类推,直至 最大深度上的结点都访问完毕为止。(层序遍历)
(2)深度优先遍历
深度优先有分前序和后序。
① 前序遍历 是 先访问 根结点,然后以递归方式依次访问各子树,对每个子树都一直访问到最底层的子结点后, 再访问另一子树。
② 后序遍历则是先访问各子结点,最后是根结点。
二叉树的遍历:
遍历二叉树有3种方法:
① 前序遍历
从根结点开始,先访问结点本身,然后前序遍历其左子树,最后 前序 遍历 其右子树
② 中序遍历
从根结点开始,先中序遍历其 左子树,访问结点本身,最后中序遍历其右子树
③ 后序遍历
从根结点开始,后序遍历其 左子树,然后后序遍历 其 右子树,最后访问结点本身。
(1)广度优先遍历
自根部向下,依次访问完第一层的所有结点后,然后逐层访问各子树上同一层次的所有结点,以此类推,直至 最大深度上的结点都访问完毕为止。(层序遍历)
(2)深度优先遍历
深度优先有分前序和后序。
① 前序遍历 是 先访问 根结点,然后以递归方式依次访问各子树,对每个子树都一直访问到最底层的子结点后, 再访问另一子树。
② 后序遍历则是先访问各子结点,最后是根结点。
二叉树的遍历:
遍历二叉树有3种方法:
① 前序遍历
从根结点开始,先访问结点本身,然后前序遍历其左子树,最后 前序 遍历 其右子树
② 中序遍历
从根结点开始,先中序遍历其 左子树,访问结点本身,最后中序遍历其右子树
③ 后序遍历
从根结点开始,后序遍历其 左子树,然后后序遍历 其 右子树,最后访问结点本身。
相关文章推荐
- AVL树-自平衡二叉查找树(Java实现)
- 文件遍历排序函数
- Lua 学习笔记之C API 遍历 Table实现代码
- C#遍历文件夹后上传文件夹中所有文件错误案例分析
- C#中遍历Hashtable的4种方法
- Erlang中遍历取出某个位置的最大值代码
- C++实现图的邻接矩阵存储和广度、深度优先遍历实例分析
- C++实现图的邻接表存储和广度优先遍历实例分析
- C语言二叉树的非递归遍历实例分析
- 使用C语言构建基本的二叉树数据结构
- 一波二叉树遍历问题的C++解答实例分享
- C++非递归队列实现二叉树的广度优先遍历
- php遍历目录方法小结
- 一个目录遍历函数
- php遍历删除整个目录及文件的方法
- PHP遍历文件夹与文件类及处理类用法实例
- PHP遍历XML文档所有节点的方法
- php中使用key,value,current,next和prev函数遍历数组的方法
- C#使用前序遍历、中序遍历和后序遍历打印二叉树的方法
- 平衡二叉树