2013年3月31日

图,深度,广度优先遍历(三)

摘要: 广度优先搜索树BFS算法(队列实现):同深度优先搜索,需要一个ArrayList searchOrders存放路径;一个int[]数组parent存放父亲节点;一个boolean[]数组isVisited标记节点是否被访问过;另外,不同于深度优先搜索,前文中深度优先搜索是以递归形式来实现(其实用栈亦可以实现),广度优先搜索用队列实现,所以需要一个链表LinkedList queue存放处理节点的优先顺序;step1 将起始节点v放入队列,queue.offer(v),并且isVisited[v] = true;step2 队列不为空的情况下,循环: 队首节点u出列 int u = queue. 阅读全文

posted @ 2013-03-31 10:42 Jam_01 阅读(258) 评论(0) 推荐(0) 编辑

图,深度,广度优先遍历(二)

摘要: 深度优先搜索树DFS算法:step1 选取图中的一个点(Vertex) v,将与该点v相邻的其余所有点存放至neighbours.get(v)中。 isVisited数组用来判断该点是否已遍历,isVisited[v] = true; step2 递归方法 dfs(v,parent,serachOrders); parent为int[]数组,parent[i]表示i点的父亲节点。 searchOrders为一个ArrayList数组,为遍历路径。 每次递归开始,searchOrders.add(v),isVisited[v] = true; 将v所有相邻节点i进行判断,若未被访问过,即!isV 阅读全文

posted @ 2013-03-31 09:59 Jam_01 阅读(236) 评论(0) 推荐(0) 编辑

导航