广度优先遍历_改造为递归方式
来源:互联网 发布:正确的日干支推算法 编辑:程序博客网 时间:2024/06/15 19:34
import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;/**第05讲-广度优先遍历_改造为递归方式 * ------------------------------------ * 深度优先遍历的递归相似性很明显。 * 广度优先遍历可以用递归的解法吗?试把课程中解法改造为递归方式 * */public class MyWidthTravel {@SuppressWarnings({ "rawtypes", "unchecked" })public static void main(String[] args) {int[][] g = { { 0, 1, 1, 0, 0, 0, 0 }, { 1, 0, 0, 1, 0, 0, 1 },{ 1, 0, 0, 0, 0, 1, 1 }, { 0, 1, 0, 0, 1, 0, 0 },{ 0, 0, 0, 1, 0, 1, 1 }, { 0, 0, 1, 0, 1, 0, 0 },{ 0, 1, 1, 0, 1, 0, 0 } };Set tag = new HashSet(); // 保存已经遍历的节点List layer = new ArrayList();// 等待遍历layer.add(0);// 初始态,从0号开始遍历widthTravel(g, tag, layer);// 调用广度优先遍历方法}/** * 广度优先遍历方发 * */@SuppressWarnings({ "rawtypes", "unchecked" })public final static void widthTravel(int[][] g, Set tag, List lst) {// 3个参量,邻接表矩阵,标记,待遍历lstint node = (Integer) lst.get(0);// 取得0号元素System.out.println(node);// 立即输出这个元素tag.add(node);// 加入到标记中lst.remove(0);// 同时把该元素从lst中删除// 处理这个节点紧跟的所有孩子for (int i = 0; i < g[node].length; i++) {// 第node行所有的元素进行查找if (g[node][i] == 1 // 表示着两个节点间是有连接线的&& tag.contains(i) == false// 排除已经遍历过的节点,在tag中判断是否包含这个节点&& lst.indexOf(i) < 0) {// 不同的节点可能有相同的孩子,判断i节点是否已经在lst中了,<0即=-1,找不到。lst.add(i);// 加入lst中等待遍历}}if (lst.isEmpty() == false) {// 如果lst不为空,进行递归widthTravel(g, tag, lst);// 递归自己}}}
0 0
- 广度优先遍历_改造为递归方式
- 广度优先遍历文件夹和深度递归遍历文件夹
- 二叉树的深度优先遍历(递归、非递归),广度优先遍历(递归)
- 深度优先遍历与广度优先遍历 递归与非递归思路
- 深度优先遍历与广度优先遍历 递归与非递归思路
- 邻接矩阵的深度优先遍历(递归以及非递归),广度优先遍历
- 深度优先遍历/广度优先遍历(递归+非递归java实现)
- 深度优先遍历与广度优先遍历 递归与非递归思路
- 图的深度优先遍历(递归与非递归算法)和广度优先遍历
- 单线程非递归的广度优先遍历算法
- XML遍历文档树(广度优先与递归)
- 二叉树的深度优先遍历、广度优先遍历和非递归遍历
- 二叉树的深度优先遍历、广度优先遍历和非递归遍历
- 二叉树的深度优先遍历、广度优先遍历和非递归遍历
- 【概念】【二叉树】深度优先遍历、广度优先遍历和非递归遍历
- 二叉树的深度优先遍历、广度优先遍历和非递归遍历
- 二叉树的深度优先遍历、广度优先遍历和非递归遍历
- 二叉树的深度优先遍历、广度优先遍历和非递归遍历
- ACMclub - 1123 确定排序序列(拓扑排序)
- 利用成功学思维做好网站运营
- 利用枚举表示坐标对称
- MyBatis动态连接数据库,动态传入数据库参数
- 分治策略
- 广度优先遍历_改造为递归方式
- second_indexr
- java命令行中实现输入输出
- hibernate之基本操作(增,删,改,查)
- Eclipse中进行JVM内存设置
- popupwindow 小小记
- (wifi-display specification)RTSP交互信息详解
- 关于YAFFS2文件系统移植的一些参考资料
- 关于HOGDescriptor中的SVMDetector