版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、圖的遍歷圖的遍歷深度優(yōu)先搜索廣度優(yōu)先搜索圖的遍歷小結(jié)和作業(yè)復(fù)習(xí)課堂練習(xí)圖的遍歷的運(yùn)用舉例(自學(xué))復(fù)習(xí)復(fù)習(xí)- -圖的存儲(chǔ)構(gòu)造圖的存儲(chǔ)構(gòu)造BACDFE0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 復(fù)習(xí)復(fù)習(xí)- -圖的存儲(chǔ)構(gòu)造圖的存儲(chǔ)構(gòu)造012345ABCDEF14043525011253BACDFE復(fù)習(xí)復(fù)習(xí)- -圖的存儲(chǔ)構(gòu)造圖的存儲(chǔ)構(gòu)造ABECD0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 ABECD1597211132復(fù)習(xí)復(fù)習(xí)- -圖的存儲(chǔ)構(gòu)造圖的
2、存儲(chǔ)構(gòu)造ABECD0101234ABCDE32034ABECD159721113201234ABCDE1 154 93 20 111 72 212 3復(fù)習(xí)復(fù)習(xí)- -圖的存儲(chǔ)構(gòu)造圖的存儲(chǔ)構(gòu)造0101234ABCDE32034ABECD圖的遍歷圖的遍歷定義:從圖中某個(gè)頂點(diǎn)出發(fā)游歷圖,訪遍圖中其他頂點(diǎn),并且使圖中的每個(gè)頂點(diǎn)僅被訪問(wèn)一次的過(guò)程。用途:是處理圖的連通性、拓?fù)渑判蚝颓箨P(guān)鍵途徑等算法的根底。u深度優(yōu)先搜索u廣度優(yōu)先搜索分類:深度優(yōu)先搜索深度優(yōu)先搜索SG1SG2SG3W1、W2和W3 均為 V 的鄰接點(diǎn),SG1、SG2 和 SG3 分別為含頂點(diǎn)W1、W2和W3 的子圖。Vw1w3w2深度優(yōu)先搜
3、索深度優(yōu)先搜索SG1SG2SG3Vw1w3w2訪問(wèn)頂點(diǎn)訪問(wèn)頂點(diǎn)V ;V ;for (W1for (W1、W2W2、W3 )W3 )假設(shè)鄰接點(diǎn)假設(shè)鄰接點(diǎn)WiWi未被訪未被訪問(wèn),那么從它出發(fā)進(jìn)問(wèn),那么從它出發(fā)進(jìn)展深度優(yōu)先搜索歷。展深度優(yōu)先搜索歷。深度遍歷序列:深度遍歷序列:V1V2V4V5V3V7V6V8V1 V2 V4 V8 V5 V6 V3 V7V1V2V4V5V3V7V6V8深度優(yōu)先搜索深度優(yōu)先搜索- -連通圖連通圖 V4V6V2V5V1V8V3V71、從深度優(yōu)先搜索遍歷連通圖的過(guò)程類似于樹(shù)的先根遍歷2、對(duì)圖G深度優(yōu)先搜索得到的頂點(diǎn)序列不是獨(dú)一的?3、搜索過(guò)程中經(jīng)過(guò)的邊和一切的頂點(diǎn)構(gòu)成了圖的
4、一棵生成樹(shù)。4、如何判別V的鄰接點(diǎn)能否被訪問(wèn)? 為每個(gè)頂點(diǎn)設(shè)立一個(gè)“訪問(wèn)標(biāo)志 visited;深度優(yōu)先搜索深度優(yōu)先搜索- -連通圖連通圖 void DFS(int v) / 從頂點(diǎn)從頂點(diǎn)v出發(fā),深度優(yōu)先搜索遍歷連通圖出發(fā),深度優(yōu)先搜索遍歷連通圖 / DFS深度優(yōu)先搜索深度優(yōu)先搜索- -連通圖連通圖 vertexsv.visited = true;/對(duì)v的尚未訪問(wèn)的鄰接頂點(diǎn)w遞歸調(diào)用DFSfor(w=firstAdjVex(v); w=0; w=nextAdjVex(v,w) if (vertexsw.visited=false) DFS(w);V1V2V3V4V5V1V2V8V5V6V4V2V
5、8V8V3V1V6V7V3V8DFS(G, V1)V1V2V4V5V3V7V6V8V1V2V4V5V3V7V6V8V7深度優(yōu)先搜索深度優(yōu)先搜索非連通圖非連通圖首先將圖中每個(gè)頂點(diǎn)的訪問(wèn)標(biāo)志設(shè)為 fasle, 之后搜索圖中每個(gè)頂點(diǎn),假設(shè)未被訪問(wèn),那么以該頂點(diǎn)為起始點(diǎn),進(jìn)展深度優(yōu)先搜索遍歷,否那么繼續(xù)檢查下一頂點(diǎn)。V1V2V4V5V3V7V6V8V1V2V4V5V3V7V6V8深度遍歷:深度遍歷:V1 V2 V4 V8V5V3 V6 V7深度優(yōu)先搜索深度優(yōu)先搜索非連通圖非連通圖深度優(yōu)先搜索深度優(yōu)先搜索非連通圖非連通圖void DFSTraverse(int v) for (v=0; vvexNum;
6、 +v) vertexsv.visited = false; / 訪問(wèn)標(biāo)志數(shù)組初始訪問(wèn)標(biāo)志數(shù)組初始化化 for (v=0; vw1, V-w2, V-w8 的的途徑長(zhǎng)度為途徑長(zhǎng)度為1;V-w7, V-w3, V-w5的的途徑長(zhǎng)度為途徑長(zhǎng)度為2;V-w6, V-w4的途徑長(zhǎng)度為的途徑長(zhǎng)度為3。w1w8w3w7w6w2w5w4廣度優(yōu)先搜索廣度優(yōu)先搜索廣度優(yōu)先搜索廣度優(yōu)先搜索1.1.從圖中的某個(gè)頂點(diǎn)從圖中的某個(gè)頂點(diǎn)V0V0出發(fā),并在訪問(wèn)此頂點(diǎn)出發(fā),并在訪問(wèn)此頂點(diǎn)之后依次訪問(wèn)之后依次訪問(wèn)V0V0的一切未被訪問(wèn)過(guò)的鄰接點(diǎn)的一切未被訪問(wèn)過(guò)的鄰接點(diǎn)2.2.然后按這些頂點(diǎn)被訪問(wèn)的先后次序依次訪問(wèn)然后按這些頂點(diǎn)
7、被訪問(wèn)的先后次序依次訪問(wèn)它們的鄰接點(diǎn),直至圖中一切和它們的鄰接點(diǎn),直至圖中一切和V0V0有途徑相通有途徑相通的頂點(diǎn)都被訪問(wèn)到。的頂點(diǎn)都被訪問(wèn)到。3.3.假設(shè)此時(shí)圖中尚有頂點(diǎn)未被訪問(wèn)假設(shè)此時(shí)圖中尚有頂點(diǎn)未被訪問(wèn), ,那么另選那么另選圖中一個(gè)未曾被訪問(wèn)的頂點(diǎn)作起始點(diǎn)圖中一個(gè)未曾被訪問(wèn)的頂點(diǎn)作起始點(diǎn)4.4.反復(fù)上述過(guò)程,直至圖中一切頂點(diǎn)都被訪問(wèn)反復(fù)上述過(guò)程,直至圖中一切頂點(diǎn)都被訪問(wèn)到為止到為止廣度優(yōu)先搜索廣度優(yōu)先搜索V1V2V4V5V3V7V6V8V1V8廣度遍歷序列:廣度遍歷序列:V4V6V8V2V5V1V3V7 V2 V3 V4 V5 V6 V7廣度優(yōu)先搜索廣度優(yōu)先搜索V1V2V4V5V3V7V
8、6V8V1V2V4V5V3V7V6V8V1V8廣度遍歷序列:廣度遍歷序列: V2 V3 V4 V6 V7V5public void BFS() ArrayQueue AQueue=new ArrayQueue(); for(int i=0;ivexnum;i+) vertexsi.visited=false; for(int v=0;v=0; w=nextAdjVex(u,w) if (vertexs(w).wasVisited=false) System.out.print(vertexsw.data+ ); vertexs(w).visited=true; AQueue.enQueue(w
9、); /if /while /if課堂練習(xí)課堂練習(xí)1:無(wú)向圖G=(V,E),其中:V=a,b,c,d,e,f, E= (a,b), (a,e), (a,c), (b,e), (c,f), (f,d), (e,d),對(duì)該圖進(jìn)展深度優(yōu)先遍歷,得到的頂點(diǎn)序列正確的 。Aa,b,e,c,d,f Ba,c,f,e,b,d Ca,e,b,c,f,d Da,e,d,f,c,babedcf2:知一無(wú)向圖G=V,E,其中V=a,b,c,d,e E=(a,b),(a,d),(a,c),(d,c),(b,e)現(xiàn)用某一種圖遍歷方法從頂點(diǎn)a開(kāi)場(chǎng)遍歷圖,得到的序列為abecd,那么采用的是_。課堂練習(xí)課堂練習(xí)adbec圖
10、的遍歷運(yùn)用舉例圖的遍歷運(yùn)用舉例1.1.求一條從頂點(diǎn)求一條從頂點(diǎn)i i到頂點(diǎn)到頂點(diǎn)s s的簡(jiǎn)單途徑的簡(jiǎn)單途徑2.2.求兩個(gè)頂點(diǎn)之間的一條長(zhǎng)度最短的途徑求兩個(gè)頂點(diǎn)之間的一條長(zhǎng)度最短的途徑圖的遍歷運(yùn)用舉例圖的遍歷運(yùn)用舉例1.1.求一條從頂點(diǎn)求一條從頂點(diǎn)i i到頂點(diǎn)到頂點(diǎn)s s的簡(jiǎn)單途徑的簡(jiǎn)單途徑求從頂點(diǎn)b到頂點(diǎn)k的一條簡(jiǎn)單途徑。abchdekfg從頂點(diǎn)b出發(fā)進(jìn)展深度優(yōu)先搜索遍歷圖的遍歷運(yùn)用舉例圖的遍歷運(yùn)用舉例求從頂點(diǎn)b到頂點(diǎn)k的一條簡(jiǎn)單途徑。假設(shè)找到的第一個(gè)鄰接點(diǎn)是a,且得到的結(jié)點(diǎn)訪問(wèn)序列為: b a c h d e k f g假設(shè)找到的第一個(gè)鄰接點(diǎn)是g,那么得到的結(jié)點(diǎn)訪問(wèn)序列為:b g f k e
11、 a d h cabchdekfg圖的遍歷運(yùn)用舉例圖的遍歷運(yùn)用舉例1. 從頂點(diǎn)從頂點(diǎn) i 到頂點(diǎn)到頂點(diǎn)s ,假設(shè)存在途徑,那么從頂假設(shè)存在途徑,那么從頂點(diǎn)點(diǎn) i 出發(fā)進(jìn)展深度優(yōu)先搜索,必能搜索到頂點(diǎn)出發(fā)進(jìn)展深度優(yōu)先搜索,必能搜索到頂點(diǎn)s 。4. 簡(jiǎn)單途徑能夠有多條。簡(jiǎn)單途徑能夠有多條。3. 由它出發(fā)進(jìn)展的深度優(yōu)先遍歷曾經(jīng)完成的由它出發(fā)進(jìn)展的深度優(yōu)先遍歷曾經(jīng)完成的頂點(diǎn)不是途徑上的頂點(diǎn)。頂點(diǎn)不是途徑上的頂點(diǎn)。結(jié)論:結(jié)論:2. 遍歷過(guò)程中搜索到的頂點(diǎn)不一定是途徑上的遍歷過(guò)程中搜索到的頂點(diǎn)不一定是途徑上的頂點(diǎn)。頂點(diǎn)。圖的遍歷運(yùn)用舉例圖的遍歷運(yùn)用舉例void DFSearch( int v, int s
12、, char *PATH) / 從第從第v個(gè)頂點(diǎn)出發(fā)遞歸地深度優(yōu)先遍歷圖個(gè)頂點(diǎn)出發(fā)遞歸地深度優(yōu)先遍歷圖G, / 求得一條從求得一條從v到到s的簡(jiǎn)單途徑,并記錄在的簡(jiǎn)單途徑,并記錄在PATH中中 vertexsv.visited=true; = TRUE; / 訪問(wèn)第訪問(wèn)第 v 個(gè)個(gè)頂點(diǎn)頂點(diǎn) for (w=FirstAdjVex(G,v); w=0 ; w=NextAdjVex(G,v,w) ) if (! Vertexsw.visited) DFSearch(w, s, PATH); Append(PATH, getVertex(v); / 第v個(gè)頂點(diǎn)參與途徑&!foundif (w=
13、s) found = TRUE; Append(PATH, w); else if (!found) Delete (PATH); / 從途徑上刪除頂點(diǎn)從途徑上刪除頂點(diǎn) v 圖的遍歷運(yùn)用舉例圖的遍歷運(yùn)用舉例2.2.求兩個(gè)頂點(diǎn)之間的一條長(zhǎng)度最短的途求兩個(gè)頂點(diǎn)之間的一條長(zhǎng)度最短的途徑徑 假設(shè)兩個(gè)頂點(diǎn)之間存在多條途徑,那么其中必有一條途徑長(zhǎng)度最短的途徑。如何求得這條途徑?圖的遍歷運(yùn)用舉例圖的遍歷運(yùn)用舉例abchdekfg求從頂點(diǎn)b到頂點(diǎn)k的一條途徑長(zhǎng)度最短的途徑。圖的遍歷運(yùn)用舉例圖的遍歷運(yùn)用舉例abchdekfgabchdekfg廣度優(yōu)先搜索訪問(wèn)頂點(diǎn)的次序是按廣度優(yōu)先搜索訪問(wèn)頂點(diǎn)的次序是按“途途徑長(zhǎng)度漸增的次序。徑長(zhǎng)度漸增的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年磁性電話簿行業(yè)深度研究分析報(bào)告
- 2025年絡(luò)氨銅項(xiàng)目投資可行性研究分析報(bào)告
- 2025年度港口碼頭轉(zhuǎn)租及船舶代理服務(wù)合同4篇
- 二零二五年度汽車回收拆解與資源化利用合同4篇
- 2025年度新型城鎮(zhèn)化建設(shè)項(xiàng)目承包地租賃合同3篇
- 二零二五版商業(yè)地產(chǎn)使用權(quán)無(wú)償轉(zhuǎn)讓合同3篇
- 二零二五年度美發(fā)行業(yè)技師職業(yè)發(fā)展規(guī)劃合同4篇
- 二零二五年度民辦學(xué)校教師信息技術(shù)應(yīng)用聘用合同4篇
- 2025版電子商務(wù)平臺(tái)運(yùn)營(yíng)管理合同集錦4篇
- 2025年度行政合同行政主體特權(quán)在政府與市場(chǎng)關(guān)系中的平衡合同4篇
- 餐飲行業(yè)智慧餐廳管理系統(tǒng)方案
- 2025年度生物醫(yī)藥技術(shù)研發(fā)與許可協(xié)議3篇
- 電廠檢修安全培訓(xùn)課件
- 殯葬改革課件
- 2024企業(yè)答謝晚宴會(huì)務(wù)合同3篇
- 雙方個(gè)人協(xié)議書(shū)模板
- 車站安全管理研究報(bào)告
- 瑪米亞RB67中文說(shuō)明書(shū)
- 中華人民共和國(guó)文物保護(hù)法
- 五年級(jí)數(shù)學(xué)(小數(shù)四則混合運(yùn)算)計(jì)算題專項(xiàng)練習(xí)及答案
- NB_T 10533-2021 采煤沉陷區(qū)治理技術(shù)規(guī)范_(高清最新)
評(píng)論
0/150
提交評(píng)論