数据结构与算法-二叉树遍历

基本概念

  二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。

研究二叉树遍历的必要性

  如果我们用图形的方式来表现树的结构,应该说是非常直观和容易理解,但是对于计算机来说,它只有循环、判断等方式来处理,也就是说,它只会处理线性序列,而二叉树的遍历其实就是把树中的结点变成某种意义上的线性序列,这就给程序的实现带来了好处。比如下图的二叉树,其前序遍历结果为【ABDGHCEIF】

四种遍历方法

前序遍历

  规则:若二叉树为空,则空操作返回,否则先访问根结点,然后前序遍历左子树,再前序遍历右子树。
  算法:

  结果:【ABDGHCEIF】

中序遍历

  规则:若树为空,则空操作返回,否则从根结点开始(注意并不是先访问根结点),中序遍历根结点的左子树,然后是访问根结点,最后中序遍历右子树。
  算法:

  结果:【GDHBAEICF】

后序遍历

  规则:若树为空,则空操作返回,否则从左到右先叶子后结点的方式遍历访问左右子树,最后是访问根结点。
  算法:

  结果:【GHDBIEFCA】

层序遍历

  规则:若树为空,则空操作返回,否则从树的第一层,也就是根结点开始访问,从上而下逐层遍历,在同一层中,按从左到右的顺序对结点逐个访问。
  结果:【ABCDEFGHI】

猜你喜欢

转载自blog.csdn.net/FTD_SL/article/details/86716639