亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

圖的深度優先遍歷

2019-11-11 04:18:15
字體:
來源:轉載
供稿:網友

深度優先遍歷是連通圖的一種遍歷策略。其基本思想如下:

設x是當前被訪問頂點,在對x做過訪問標記后,選擇一條從x出發的未檢測過的邊(x,y)。若發現頂點y已訪問過,則重新選擇另一條從x出發的未檢測過的邊,否則沿邊(x,y)到達未曾訪問過的y,對y訪問并將其標記為已訪問過;然后從y開始搜索,直到搜索完從y出發的所有路徑,即訪問完所有從y出發可達的頂點之后,才回溯到頂點x,并且再選擇一條從x出發的未檢測過的邊。上述過程直至從x出發的所有邊都已檢測過為止。代碼示例中遍歷如下圖所示的圖。 ?

這里寫圖片描述

代碼:package test.algorithm.FastSlowPointer;import java.util.Stack;/** * 圖的深度優先遍歷 * @author serenity * */public class Graph { // 存儲節點信息 PRivate char[] vertices; // 存儲邊信息(鄰接矩陣) private int[][] arcs; // 圖的節點數 private int vexnum; // 記錄節點是否已被遍歷 private boolean[] visited; // 初始化 public Graph(int n) { vexnum = n; vertices = new char[n]; arcs = new int[n][n]; visited = new boolean[n]; for (int i = 0; i < vexnum; i++) { for (int j = 0; j < vexnum; j++) { arcs[i][j] = 0; } } } // 添加邊(無向圖) public void addEdge(int i, int j) { // 邊的頭尾不能為同一節點 if (i == j)return; arcs[i][j] = 1; arcs[j][i] = 1; } // 設置節點集 public void setVertices(char[] vertices) { this.vertices = vertices; } // 設置節點訪問標記 public void setVisited(boolean[] visited) { this.visited = visited; } // 打印遍歷節點 public void visit(int i){ System.out.print(vertices[i] + " "); } // 從第i個節點開始深度優先遍歷 private void traverse(int i){ // 標記第i個節點已遍歷 visited[i] = true; // 打印當前遍歷的節點 visit(i); // 遍歷鄰接矩陣中第i個節點的直接聯通關系 for(int j=0;j<vexnum;j++){ // 目標節點與當前節點直接聯通,并且該節點還沒有被訪問,遞歸 if(arcs[i][j]==1 && visited[j]==false){ traverse(j); } } } // 圖的深度優先遍歷(遞歸) public void DFSTraverse(){ // 初始化節點遍歷標記 for (int i = 0; i < vexnum; i++) { visited[i] = false; } // 從沒有被遍歷的節點開始深度遍歷 for(int i=0;i<vexnum;i++){ if(visited[i]==false){ // 若是連通圖,只會執行一次 traverse(i); } } } // 圖的深度優先遍歷(非遞歸) public void DFSTraverse2(){ // 初始化節點遍歷標記 for (int i = 0; i < vexnum; i++) { visited[i] = false; } Stack<Integer> s = new Stack<Integer>(); for(int i=0;i<vexnum;i++){ if(!visited[i]){ //連通子圖起始節點 s.add(i); do{ // 出棧 int curr = s.pop(); // 如果該節點還沒有被遍歷,則遍歷該節點并將子節點入棧 if(visited[curr]==false){ // 遍歷并打印 visit(curr); visited[curr] = true; // 沒遍歷的子節點入棧 for(int j=vexnum-1; j>=0 ; j-- ){ if(arcs[curr][j]==1 && visited[j]==false){ s.add(j); } } } }while(!s.isEmpty()); } } } public static void main(String[] args) { Graph g = new Graph(9); char[] vertices = {'A','B','C','D','E','F','G','H','I'}; g.setVertices(vertices); g.addEdge(0, 1); g.addEdge(0, 5); g.addEdge(1, 0); g.addEdge(1, 2); g.addEdge(1, 6); g.addEdge(1, 8); g.addEdge(2, 1); g.addEdge(2, 3); g.addEdge(2, 8); g.addEdge(3, 2); g.addEdge(3, 4); g.addEdge(3, 6); g.addEdge(3, 7); g.addEdge(3, 8); g.addEdge(4, 3); g.addEdge(4, 5); g.addEdge(4, 7); g.addEdge(5, 0); g.addEdge(5, 4); g.addEdge(5, 6); g.addEdge(6, 1); g.addEdge(6, 3); g.addEdge(6, 5); g.addEdge(6, 7); g.addEdge(7, 3); g.addEdge(7, 4); g.addEdge(7, 6); g.addEdge(8, 1); g.addEdge(8, 2); g.addEdge(8, 3); System.out.print("深度優先遍歷(遞歸):"); g.DFSTraverse(); System.out.println(); System.out.print("深度優先遍歷(非遞歸):"); g.DFSTraverse2(); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频99| 亚洲精品综合久久中文字幕| 日韩精品极品在线观看| 欧美久久精品一级黑人c片| 久久精品色欧美aⅴ一区二区| 热门国产精品亚洲第一区在线| 欧美性精品220| 国语自产精品视频在免费| 日韩av影院在线观看| 亚洲www永久成人夜色| 日本高清久久天堂| 成人羞羞国产免费| 亚洲视频国产视频| 欧美激情精品久久久久久变态| 中文字幕av一区二区三区谷原希美| 91免费高清视频| 日韩av三级在线观看| 精品久久久久久亚洲国产300| 68精品国产免费久久久久久婷婷| 欧美在线视频播放| 久久视频在线视频| 亚洲男人第一av网站| 成人福利视频网| 亚洲激情自拍图| 亚洲小视频在线观看| 一本一本久久a久久精品牛牛影视| 欧美在线一级va免费观看| 国产日韩欧美中文在线播放| 91香蕉亚洲精品| 亚洲国产精品久久久久秋霞蜜臀| 亚洲区bt下载| 成人a视频在线观看| 亚洲成年人在线播放| 亚州成人av在线| 国产精品午夜国产小视频| 国产欧美精品xxxx另类| 久久全球大尺度高清视频| 国产精品对白刺激| 成人午夜在线观看| 国产精品一久久香蕉国产线看观看| 日韩视频亚洲视频| 国产精品ⅴa在线观看h| 亚洲欧美www| 久久久国产精彩视频美女艺术照福利| 国产精品一区二区久久久| 亚洲成av人乱码色午夜| 久久久综合免费视频| 久久影视三级福利片| 欧美成人免费观看| 国产精品免费视频久久久| 国产精品高潮呻吟久久av无限| 国产一区二区三区视频在线观看| 国产精品一香蕉国产线看观看| 免费av在线一区| 久久国产精品久久久久久久久久| 国产精品27p| 亚洲精品视频网上网址在线观看| 亚洲高清在线观看| 性色av一区二区三区免费| 欧美综合国产精品久久丁香| 日韩在线视频观看正片免费网站| 久久人人爽人人爽人人片av高请| 91免费在线视频| 精品久久久久久久久国产字幕| 亚洲一区二区三区视频播放| 亚洲视频电影图片偷拍一区| 欧美国产日韩精品| 97视频在线观看免费高清完整版在线观看| 日韩免费在线电影| 日韩中文字幕在线视频| 成人妇女淫片aaaa视频| 欧美天堂在线观看| 久久久久久久影视| 精品久久国产精品| 色偷偷噜噜噜亚洲男人| 国产一区二区三区在线播放免费观看| 欧美电影在线播放| 欧美精品久久久久久久| 51精品国产黑色丝袜高跟鞋| 亚洲欧美日韩直播| 国产精品美乳在线观看| 伊人激情综合网| 91精品国产91久久久久| 欧美视频裸体精品| 国产成人jvid在线播放| 国产一区二区免费| 国产一区二区三区在线| 91在线高清免费观看| 欧美二区乱c黑人| 精品国产乱码久久久久久虫虫漫画| 欧美电影在线观看高清| 91极品女神在线| 91精品视频网站| 国产成人中文字幕| 亚洲最大的av网站| 欧美电影在线观看高清| 国产丝袜一区二区三区免费视频| 欧美午夜精品久久久久久久| 久久久噜久噜久久综合| 亚洲乱码国产乱码精品精| 成人激情av在线| 亚洲国产精品小视频| 亚洲免费人成在线视频观看| 国产xxx69麻豆国语对白| 亚洲淫片在线视频| 国语自产精品视频在线看| 国产日本欧美一区| 亚洲欧美日韩直播| 91在线中文字幕| 国产精品影片在线观看| 热久久99这里有精品| 国产精品久久久久久中文字| 欧美日韩国产一区二区三区| 欧美亚洲视频一区二区| 日韩精品亚洲精品| 成人在线中文字幕| 亚洲人成网站在线播| 久久91精品国产91久久跳| 中文字幕精品一区二区精品| 日韩成人在线视频观看| 国产精品久久91| 欧美成人精品不卡视频在线观看| 国产亚洲福利一区| 亚洲视频777| 亚洲色图偷窥自拍| 亚洲奶大毛多的老太婆| 影音先锋欧美在线资源| 欧美精品在线播放| 97视频在线播放| 国产精品亚洲美女av网站| 日韩视频永久免费观看| 欧美大片在线免费观看| 国产美女搞久久| 97精品国产97久久久久久春色| 国产精品com| 日韩精品小视频| 一区二区亚洲精品国产| 一个人看的www欧美| 欧美黑人又粗大| 国产精品天天狠天天看| 国内精品久久久久久久久| 国产亚洲欧美aaaa| 在线精品国产成人综合| 疯狂蹂躏欧美一区二区精品| 色视频www在线播放国产成人| 久久夜精品va视频免费观看| 国产精品私拍pans大尺度在线| 国产日韩换脸av一区在线观看| 亚洲丝袜在线视频| 亚洲男人av电影| 日韩视频在线免费观看| 亚洲精品久久久久国产| 韩曰欧美视频免费观看| 国产网站欧美日韩免费精品在线观看| 国产日产久久高清欧美一区| 91色视频在线观看| 日韩欧美国产视频| 色天天综合狠狠色| 3344国产精品免费看| 国产一区二区三区在线播放免费观看| 成人福利视频在线观看| 欧美性生活大片免费观看网址| 亚洲精品午夜精品| 欧美成人激情图片网|