数据结构——二叉树先序、中序、后序三种遍历

一、图示展示:
(1)先序遍历
先序遍历可以想象为,一个小人从一棵二叉树根节点为起点,沿着二叉树外沿,逆时针走一圈回到根节点,路上遇到的元素顺序,就是先序遍历的结果
先序遍历结果为:A B D H I E J C F K G
数据结构——二叉树先序、中序、后序三种遍历_第1张图片

动画演示:
记住小人沿着外围跑一圈(直到跑回根节点),多看几次动图便能理解
数据结构——二叉树先序、中序、后序三种遍历_第2张图片

2)中序遍历
中序遍历可以看成,二叉树每个节点,垂直方向投影下来(可以理解为每个节点从最左边开始垂直掉到地上),然后从左往右数,得出的结果便是中序遍历的结果
中遍历结果为:H D I B E J A F K C G

数据结构——二叉树先序、中序、后序三种遍历_第3张图片
数据结构——二叉树先序、中序、后序三种遍历_第4张图片

3)后序遍历
后序遍历就像是剪葡萄,我们要把一串葡萄剪成一颗一颗的。
还记得我上面提到先序遍历绕圈的路线么?(不记得翻上面理解)
就是围着树的外围绕一圈,如果发现一剪刀就能剪下的葡萄(必须是一颗葡萄)(也就是葡萄要一个一个掉下来,不能一口气掉超过1个这样),就把它剪下来,组成的就是后序遍历了。
后序遍历中,根节点默认最后面
后序遍历结果:H I D J E B K F G C A
数据结构——二叉树先序、中序、后序三种遍历_第5张图片

(4)层次遍历
层次遍历很好理解,就是从根节点开始,一层一层,从上到下,每层从左到右,依次写值就可以了
层次遍历结果:A B C D E F G H I J K
数据结构——二叉树先序、中序、后序三种遍历_第6张图片

解释外圈跑的意思:
绕着外围跑一整圈的真正含义是:遍历所有结点时,都先往左孩子走,再往右孩子走。

(5)口诀
先序遍历: 先根 再左 再右
中序遍历: 先左 再根 再右
后序遍历: 先左 再右 再根

你可能感兴趣的:(数据结构)