数据结构与算法-二叉树遍历
日期: 2019-01-31 分类: 跨站数据 304次阅读
基本概念
二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。
研究二叉树遍历的必要性
如果我们用图形的方式来表现树的结构,应该说是非常直观和容易理解,但是对于计算机来说,它只有循环、判断等方式来处理,也就是说,它只会处理线性序列,而二叉树的遍历其实就是把树中的结点变成某种意义上的线性序列,这就给程序的实现带来了好处。比如下图的二叉树,其前序遍历结果为【ABDGHCEIF】
四种遍历方法
前序遍历
规则:若二叉树为空,则空操作返回,否则先访问根结点,然后前序遍历左子树,再前序遍历右子树。
算法:
结果:【ABDGHCEIF】
中序遍历
规则:若树为空,则空操作返回,否则从根结点开始(注意并不是先访问根结点),中序遍历根结点的左子树,然后是访问根结点,最后中序遍历右子树。
算法:
结果:【GDHBAEICF】
后序遍历
规则:若树为空,则空操作返回,否则从左到右先叶子后结点的方式遍历访问左右子树,最后是访问根结点。
算法:
结果:【GHDBIEFCA】
层序遍历
规则:若树为空,则空操作返回,否则从树的第一层,也就是根结点开始访问,从上而下逐层遍历,在同一层中,按从左到右的顺序对结点逐个访问。
结果:【ABCDEFGHI】
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
精华推荐