基于邻接表实现的DFS深度优先搜索
2015-04-13 20:47
483 查看
上一篇文章中说道用邻接矩阵来实现深度优先搜索
这里我们来谈用邻接表来实现深度优先搜索
邻接表如下所示:
由于java中对于指针的使用弱化 这里我用list来模拟链表操作
输出的结果为:
The sorted result is : 0 2 1 3 4
这里我们来谈用邻接表来实现深度优先搜索
邻接表如下所示:
由于java中对于指针的使用弱化 这里我用list来模拟链表操作
import java.util.ArrayList; import java.util.List; /** * * @author zero * */ public class adjTableDFS { private List<Integer> visitList = new ArrayList<Integer>(); private List<List> nodeList = new ArrayList<List>(); private Boolean[] visitStatus = {false, false, false, false, false}; public void initNodeList() { List list = new ArrayList(); list.add(new Node(2)); list.add(new Node(4)); nodeList.add(list); list = new ArrayList(); list.add(new Node(3)); nodeList.add(list); list = new ArrayList(); list.add(new Node(0)); list.add(new Node(1)); list.add(new Node(4)); nodeList.add(list); list = new ArrayList(); list.add(new Node(0)); list.add(new Node(4)); nodeList.add(list); list = new ArrayList(); list.add(new Node(0)); nodeList.add(list); } public void dfsSerach(List list) { for(int i = 0; i<list.size(); i++) { Node node = (Node) list.get(i); int num = node.data; if(visitStatus[num] == false) { visitList.add(node.data); visitStatus[num] = true; dfsSerach(nodeList.get(num)); }else { } } } public void outSortedResult() { System.out.print("The sorted result is : "); for(int i=0; i<visitList.size(); i++) { System.out.print(visitList.get(i) + " "); } } public void setInitNode(int num) { visitList.add(num); visitStatus[num] = true; dfsSerach(nodeList.get(0)); } public static void main(String[] args) { adjTableDFS atdfs = new adjTableDFS(); atdfs.initNodeList(); atdfs.setInitNode(0); atdfs.outSortedResult(); } } class Node { int data; public Node(int data) { this.data = data; } }
输出的结果为:
The sorted result is : 0 2 1 3 4
相关文章推荐
- 基于邻接矩阵实现的DFS深度优先搜索
- 22.基于 邻接表 表示的 深度优先搜索dfs 和 广度优先搜索bfs
- 深度优先搜索DFS(邻接表实现)
- DFS--深度优先搜索--图的邻接表表示
- 图的基本操作:图的创造(基于邻接表)、深度搜索(DFS)、广度搜索(DFS)
- DFS--深度优先搜索--图的邻接表表示
- 深度优先搜索遍历(DFS)——邻接表存储
- 深度优先搜索DFS——图邻接表表示
- 基于深度优先搜索的全排列实现方法
- 基于C++ STL图的邻接表表示及深度、广度搜索实现
- 深度优先搜索DFS-C语言实现、思路/解析-简笔
- 图的深度搜索完整实现(邻接表,DFS)
- Java实现数据结构之深度优先搜索DFS和广度优先搜索BFS
- 图基本算法 图搜索基于邻接表的(广度优先、深度优先)
- DFS--深度优先搜索
- nyoj 部分和问题(深度优先搜索DFS)
- DFS深度优先搜索模板
- 深度优先搜索DFS
- HDU/HDOJ 1241 Oil Deposits (DFS)深度优先搜索
- poj1312 dfs 深度优先搜索