二叉树的遍历方式

来源:互联网 发布:初中英语网络课程 编辑:程序博客网 时间:2024/05/22 14:00

二叉树的遍历方式

  1. 首先二叉树的遍历是什么意思,为什么需要遍历,我先拿线性表来举例。大家对游戏中的排行榜肯定非常熟悉了吧,排行榜是根据假如是根据玩家战力进行排序在排名榜上进行显示给玩家看,假如我们通过对玩家战力的比较排序之后从大到小把玩家的数据存入顺序存储结构当中,并且在view视图层的代码中遍历这个数据存储结构依次显示在排行榜当中,大家明白了为什么需要遍历了吧。说白就是取数据。
  2. 我们拿数组来说,他的遍历方法就是从前到后或者反向。遍历模式非常简单。
    但是二叉树因为他的节点不是单一的前后驱,而是1个节点对应2个孩子节点,这个时候如果按照数组那种遍历方法,我们就会面临选择是先遍历左孩子还是右孩子呢。

    二叉树的遍历定义:既然是遍历我要把全部的节点访问到,并且要保证只访问一次。概念有点专业,下面我用比较通俗的语言描述下。还是拿数组,你遍历数组是不是每个索引对应的内存都是读取一次然后刷新给排行榜。如果你读取二次那还得了,一个人数据出现二次。现在回到二叉树的遍历我们就很明白了,每个节点的正式的data必须只能读取一次。

这里写图片描述

二叉树的遍历方式分4种:前中后层序遍历
下面一一进行分 讲:
前序遍历:首先我们需要有个前提根据上图我们知道 A是根节点, B是左孩子节点 ,C是孩子节点。
分别编制为B为前,A是中(根) C是后
所以既然是前序遍历我们是先读取前的节点也就是B对应的那棵树的全部节点在访问A,在访问c也就是后,记住是从左到右的顺序
如果节点不是叶子节点也是采用同样的方式去遍历访问最终全部访问完毕当前B节点就完成访问。
中序遍历就是先中在前在后,
后续遍历就不说了
层序遍历就是从上到下从左到右访问ABCDEFGHIJK.