二叉树的遍历
遍历:迭代所有元素一遍
树的遍历:对树中所有元素不重复的访问一遍,也称作扫描。
遍历序列:将树中所有元素遍历一遍后,得到的元素的序列,将层次结构转换成了线性结构
广度优先遍历
层序遍历
- 按照树的层次,从第一层开始,自左向右遍历元素
- 遍历序列
- ABCDEFGHI
- ABCDEFGHI
深度度优先遍历
- 设树的根结点为D,左子树为L,右子树为R,且要求L一定在R之前,则有下面几种遍历方式
- 前序遍历,也叫先序遍历,也叫先根遍历,DLR
- 中序遍历,也叫中根遍历,LDR
- 后序遍历,也叫后根遍历,LRD
前序遍历DLR
- 从根结点开始,先左子树后右子树
- 每个子树内部依旧是先根结点,再左子树后右子树。递归遍历
- 遍历序列
- A BDGH CEIF
- A BDGH CEIF
中序遍历LDR
- 从根结点的左子树开始遍历,然后是根结点,再右子树
- 每个子树内部,也是先左子树,后根结点,再右子树。递归遍历
- 遍历序列
- 左图
- GDHB A IECF
- 右图
- GDHB A EICF
后序遍历
- GDHB A EICF
- 左图
- 先左子树,后右子树,再根结点
- 每个子树内部依旧是先左子树,后右子树,再根结点。递归遍历
- 遍历序列
- GHDB IEFC A