二叉树的深度优先与广度优先
来源:互联网 发布:python局域网嗅探 编辑:程序博客网 时间:2024/06/05 03:41
1、分析
二叉树的深度优先遍历的非递归的通用做法是采用栈,广度优先遍历的非递归的通用做法是采用队列。
深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次。要特别注意的是,二叉树的深度优先遍历比较特殊,可以细分为先序遍历、中序遍历、后序遍历。具体说明如下:
- 先序遍历:对任一子树,先访问根,然后遍历其左子树,最后遍历其右子树。
- 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树。
- 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。
广度优先遍历:又叫层次遍历,从上往下对每一层依次访问,在每一层中,从左往右(也可以从右往左)访问结点,访问完一层就进入下一层,直到没有结点可以访问为止。
2、举例说明
对下图所示的二叉排序树进行遍历,要求使用先序遍历(递归、非递归)、中序遍历(递归、非递归)、后序遍历(递归、非递归)和广度优先遍历。
2.1、参考代码
2.2、输出结果先序遍历(递归):35 20 15 16 29 28 30 40 50 45 55
中序遍历(递归):15 16 20 28 29 30 35 40 45 50 55
后序遍历(递归):16 15 28 30 29 20 45 55 50 40 35
先序遍历(非递归):35 20 15 16 29 28 30 40 50 45 55
中序遍历(非递归):15 16 20 28 29 30 35 40 45 50 55
后序遍历(非递归):16 15 28 30 29 20 45 55 50 40 35
广度优先遍历:35 20 40 15 29 50 16 28 30 45 55
0 0
- 二叉树的深度优先遍历与广度优先遍历
- 二叉树的深度优先与广度优先遍历
- 二叉树的深度优先遍历与广度优先遍历
- 二叉树的深度优先与广度优先算法
- 二叉树的深度优先遍历与广度优先遍历
- 二叉树的深度优先与广度优先
- 二叉树的深度优先遍历与广度优先遍历
- 二叉树深度优先与广度优先遍历
- 二叉树的深度优先和广度优先遍历
- 二叉树的深度优先和广度优先遍历
- 二叉树的深度优先和广度优先遍历
- 二叉树的深度优先和广度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先遍历、广度优先遍…
- 二叉树的深度优先遍历、广度优先遍…
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先遍历和广度优先遍历
- 二叉树的深度优先搜索和广度优先搜索
- HDU_4022_Bombing
- 读深入理解Linux内核 (第8章 内存管理, 第三部分 --- 虚拟内存分配)
- SWIFT JSON
- 三种方法求解最大公约数
- 深入浅出RxJava四-在Android中使用响应式编程
- 二叉树的深度优先与广度优先
- Python-Image基本的图像处理操作
- Java中输入三个数 从小到大打印出来
- Hi SDK软件层次结构
- Fibonacii数列
- 配置Spring管理的bean的作用域
- C语言指针与数组知识点
- 表单的校验以及下拉选择器的简单使用
- C# SerialPort 串口读写