目录
- 1.先序遍历
- 1.代码实现
- 2.中序遍历
- 1.代码实现
- 3.后序遍历
- 1.代码实现
- 4.遍历算法的应用
- 5.层序遍历
- 1.算法思想
- 2.代码实现
- 6.由遍历序列构造二叉树
1.先序遍历
根左右。
1.代码实现
若二叉树为空,则什么也不做;
若二叉树非空:
①访问根结点
;
②先序遍历左子树;
③先序遍历右子树。
空间复杂度:o(h)
2.中序遍历
左根右。
1.代码实现
若二叉树非空:
①先序遍历左子树;
②访问根结点
;
③先序遍历右子树。
3.后序遍历
左右根。
1.代码实现
若二叉树非空:
①先序遍历左子树;
②先序遍历右子树;
③访问根结点
。
4.遍历算法的应用
①求树的深度
5.层序遍历
依次从左到右,从上到下遍历。
1.算法思想
①初始化一个
辅助队列
②根结点入队
③若队列非空,则队头结点出队,访问该结点,并将其左、右孩子插入队尾(如果有的话)
④重复③直至队列为空
2.代码实现
6.由遍历序列构造二叉树
结论:若只给出一棵二叉树的前/中/后/层序遍历序列中的一种,不能唯一确定一棵二叉树。
可根据两种遍历确定二叉树:
①前序+中序
②后序+中序
③层序+中序
Key:找到树的根节点,并根据中序序列划分左右子树,再找到左右子树根节点。
结论:前序、后序、层序序列的两两组合无法唯一确定一棵二叉树,必须加入中序
。