美文网首页
二叉树之前序,中序,排序遍历

二叉树之前序,中序,排序遍历

作者: 阿狸404 | 来源:发表于2018-03-22 15:21 被阅读487次

前序、中序、后序遍历有各自的特性,这个特性主要都是根据根节点的位置来判断的。

  • 前序遍历
    首先遍历根节点,然后遍历左子树,最后遍历右子树。
  • 中序遍历
    首先访问左子树,然后访问根节点,最后访问右子树。
  • 后序遍历
    首先访问左子树,然后访问右子树,最后访问根节点
    由上面的访问顺序,我们看出所谓的前序遍历,中序遍历,后序遍历都是根据根节点出现的位置来判断的。那么我们通常会遇到这样一类问题,给你前序遍历和中序遍历,或者后序遍历和中序遍历,让你画出这棵树。这个就要根据我们前序,中序,后序的特点来判断了。
    比如:已知
    前序遍历:GDAFEMHZ
    中序遍历:ADEFGHMZ

    我们来具体分析一下:
  1. 根据前序遍历的特点,我们知道G为根节点。然后根据中序排列,我们知道ADEF一定是根节点G左子树相关的结点,HMZ一定是根节点右子树相关的结点。我们大概画出这棵树:


    图片.png
  2. 然后继续判断ADEF的树结构。我们从前序遍历知道D一定为根节点,从中序排列ADEF知道,A一定为左子树相关结点,EF一定为右子树相关结点。大概画出这棵树:


    图片.png

    3.然后继续判断EF的树结构。我们从前序遍历知道F一定为根节点,从中序排列EF知道,E一定是根节点F的左子树相关结点,而根节点F没有任何右子树结点。大概画出这棵树:


    图片.png
    4.根节点G左子树相关的树已经形成了,我们再来看看右子树相关的HMZ。从前序遍历知道M一定是根节点,从中序遍历知道H一定是根节点M的左子树,Z一定是根节点M的右子树。大概画出这棵树:
    图片.png

    到此为止,我们这棵树就形成了。
    其实如果给出中序遍历和后序遍历,过程也是一样分析的。

相关文章

  • 二叉树递归非递归遍历算法整理

    一、二叉树前序遍历 1 前序递归遍历 2.前序非递归遍历 一、二叉树中序遍历 2.中序递归遍历 1.中序非递归遍历...

  • 面试题

    面试题 二叉树 非递归实现二叉树遍历 节点: 前序遍历 中序遍历 后序遍历 排序 快速排序 其他问题 算法题 给一...

  • goLang 二叉树遍历(递归 非递归 前序遍历 中序遍历 后序

    goLang 二叉树遍历(递归 非递归 前序遍历 中序遍历 后序遍历 层序遍历) 前序遍历 中序遍历 后序遍历 代...

  • 排序-二叉树

    二叉树的排序可以分为中序排序 左 中 右前序排序 中 左 右后序排序 左 右 中 中序排序能够快速遍历出...

  • leetcode 144 145 94

    二叉树遍历 前序遍历 中序遍历 后序遍历

  • 二叉树的遍历

    二叉树的遍历 前序遍历 访问根结点 前序遍历左子树 前序遍历右子树 总结:根左右 中序遍历 中序遍历左子树 访问根...

  • 二叉树的遍历

    二叉树的遍历 二叉树遍历 分为前序遍历、中序遍历和后序遍历。 前序遍历 (DLR) 先访问根节点,然后前序遍历左子...

  • 二叉树三种遍历Swift代码实现

    二叉树的三种遍历 二叉树 前序遍历 中序遍历 后序遍历 另外 不得不说,得到二叉树的前序遍历和中序遍历的结果或者后...

  • 数据结构:树的实现和遍历(c++)

    (一)二叉树的遍历——递归实现 二叉树常见的遍历方式分为前序遍历、中序遍历和后序遍历。 1 前序遍历 前序遍历也叫...

  • 算法-01

    一、二叉树 1、前序遍历:先访问根节点、前序遍历左子树、前序遍历右子树 2、中序遍历:先访问中序遍历左子树、根节点...

网友评论

      本文标题:二叉树之前序,中序,排序遍历

      本文链接:https://www.haomeiwen.com/subject/hkuaqftx.html