文章目录

  • 一.前序遍历
  • 常规操作
  • 简单方法
  • 二.中序遍历
  • 常规操作
  • 简单方法
  • 三.后序遍历
  • 常规操作
  • 四.层次遍历
  • 常规操作



本文中以此二叉树为例


前序遍历设置id和父id java代码 前序遍历结果_算法

一.前序遍历

常规操作

先根,再左,再右

前序遍历设置id和父id java代码 前序遍历结果_算法_02

确定了遍历整体结构:

前序遍历设置id和父id java代码 前序遍历结果_开发语言_03

前序遍历设置id和父id java代码 前序遍历结果_开发语言_04

确定了左子树中的整体结构

前序遍历设置id和父id java代码 前序遍历结果_算法_05

继续操作:

前序遍历设置id和父id java代码 前序遍历结果_java_06

到此左子树中的遍历已经完成

前序遍历设置id和父id java代码 前序遍历结果_前序遍历设置id和父id java代码_07

前序遍历设置id和父id java代码 前序遍历结果_java_08

确定右子树中的整体结构

前序遍历设置id和父id java代码 前序遍历结果_前序遍历设置id和父id java代码_09

前序遍历设置id和父id java代码 前序遍历结果_开发语言_10

前序遍历设置id和父id java代码 前序遍历结果_开发语言_11

前序遍历设置id和父id java代码 前序遍历结果_数据结构_12

前序结束

结果为:A B D F E C G I J H K

前序遍历设置id和父id java代码 前序遍历结果_java_13

简单方法

从根结点出发向左开始绕二叉树一圈,经过的节点顺序即为先序遍历顺序

前序遍历设置id和父id java代码 前序遍历结果_算法_14


结果为:A B D F E C G I J H K

二.中序遍历

常规操作

先左,再根,再右

前序遍历设置id和父id java代码 前序遍历结果_算法_15

由此可确定根A在中间,下面分别确定左右子树中的顺序

前序遍历设置id和父id java代码 前序遍历结果_数据结构_16

左子树中:

前序遍历设置id和父id java代码 前序遍历结果_算法_17

由此确定了左子树中的顺序

前序遍历设置id和父id java代码 前序遍历结果_算法_18


前序遍历设置id和父id java代码 前序遍历结果_前序遍历设置id和父id java代码_19

前序遍历设置id和父id java代码 前序遍历结果_java_20

右子树中:

对右子树进行整体划分

前序遍历设置id和父id java代码 前序遍历结果_开发语言_21


由此可以确定:

前序遍历设置id和父id java代码 前序遍历结果_前序遍历设置id和父id java代码_22


继续:

前序遍历设置id和父id java代码 前序遍历结果_算法_23


前序遍历设置id和父id java代码 前序遍历结果_java_24

前序遍历设置id和父id java代码 前序遍历结果_算法_25

前序遍历设置id和父id java代码 前序遍历结果_算法_26

中序遍历结束
结果为:F D B E A I G J C H K

简单方法

以该二叉树为例

前序遍历设置id和父id java代码 前序遍历结果_java_27

结果为:F D B E A I G J C H K

三.后序遍历

常规操作

先左,再右,再根

前序遍历设置id和父id java代码 前序遍历结果_前序遍历设置id和父id java代码_28

将整体结构化分出来,后序遍历时根节点永远在最后一位

前序遍历设置id和父id java代码 前序遍历结果_前序遍历设置id和父id java代码_29

前序遍历设置id和父id java代码 前序遍历结果_算法_30

继续对左子树的结构进行划分

前序遍历设置id和父id java代码 前序遍历结果_前序遍历设置id和父id java代码_31

前序遍历设置id和父id java代码 前序遍历结果_java_32

自此,左子树中遍历结束

前序遍历设置id和父id java代码 前序遍历结果_java_33

前序遍历设置id和父id java代码 前序遍历结果_前序遍历设置id和父id java代码_34

划分右子树结构

前序遍历设置id和父id java代码 前序遍历结果_java_35

前序遍历设置id和父id java代码 前序遍历结果_数据结构_36

前序遍历设置id和父id java代码 前序遍历结果_前序遍历设置id和父id java代码_37

前序遍历设置id和父id java代码 前序遍历结果_java_38

前序遍历设置id和父id java代码 前序遍历结果_数据结构_39


后序遍历结束

结果为:F D E B I J G K H C A

四.层次遍历

常规操作

将二叉树每一行作为一个整体,从上到下输出,每行按照从左到右的顺序输出

前序遍历设置id和父id java代码 前序遍历结果_开发语言_40


第一行:A

第二行:B C

第三行:D E G H

第四行:F I J K

结果为:A B C D E G H F I J K