![6-3-1圖的鄰接矩陣存儲結(jié)構(gòu)及實(shí)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)-從概念到Java實(shí)現(xiàn)-王紅梅-清華大學(xué)出版社_第1頁](http://file4.renrendoc.com/view/4aa6ca99568c66ebbd2ca5dc9ec92575/4aa6ca99568c66ebbd2ca5dc9ec925751.gif)
![6-3-1圖的鄰接矩陣存儲結(jié)構(gòu)及實(shí)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)-從概念到Java實(shí)現(xiàn)-王紅梅-清華大學(xué)出版社_第2頁](http://file4.renrendoc.com/view/4aa6ca99568c66ebbd2ca5dc9ec92575/4aa6ca99568c66ebbd2ca5dc9ec925752.gif)
![6-3-1圖的鄰接矩陣存儲結(jié)構(gòu)及實(shí)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)-從概念到Java實(shí)現(xiàn)-王紅梅-清華大學(xué)出版社_第3頁](http://file4.renrendoc.com/view/4aa6ca99568c66ebbd2ca5dc9ec92575/4aa6ca99568c66ebbd2ca5dc9ec925753.gif)
![6-3-1圖的鄰接矩陣存儲結(jié)構(gòu)及實(shí)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)-從概念到Java實(shí)現(xiàn)-王紅梅-清華大學(xué)出版社_第4頁](http://file4.renrendoc.com/view/4aa6ca99568c66ebbd2ca5dc9ec92575/4aa6ca99568c66ebbd2ca5dc9ec925754.gif)
![6-3-1圖的鄰接矩陣存儲結(jié)構(gòu)及實(shí)現(xiàn)-數(shù)據(jù)結(jié)構(gòu)-從概念到Java實(shí)現(xiàn)-王紅梅-清華大學(xué)出版社_第5頁](http://file4.renrendoc.com/view/4aa6ca99568c66ebbd2ca5dc9ec92575/4aa6ca99568c66ebbd2ca5dc9ec925755.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
6-3-1圖的鄰接矩陣存儲結(jié)構(gòu)及實(shí)現(xiàn)v第六章圖圖的存儲結(jié)構(gòu)圖是否可以采用順序存儲結(jié)構(gòu)?在圖中,任何兩個(gè)頂點(diǎn)之間都可能存在關(guān)系(邊)無法通過存儲位置表示這種任意的邏輯關(guān)系圖無法采用順序存儲結(jié)構(gòu)如何存儲圖呢?圖是由頂點(diǎn)和邊組成分別考慮如何存儲頂點(diǎn)如何存儲邊圖的鄰接矩陣存儲結(jié)構(gòu)講什么?鄰接矩陣的實(shí)現(xiàn)——建立鄰接矩陣的實(shí)現(xiàn)——深度優(yōu)先遍歷鄰接矩陣的實(shí)現(xiàn)——廣度優(yōu)先遍歷存儲思想設(shè)G=(V,E)有n個(gè)頂點(diǎn),則鄰接矩陣是一個(gè)n×n的方陣,定義為:edge[i][j]=1若(vi,vj)∈E(或<vi,vj>∈E)0其它鄰接矩陣也稱數(shù)組表示法,其基本思想是:一維數(shù)組:存儲圖中頂點(diǎn)的信息二維數(shù)組(鄰接矩陣):存儲圖中各頂點(diǎn)之間的鄰接關(guān)系存儲示意圖v0v3v2v1v0v1v2v3vertex=0101101101001100edge=v0
v1
v2
v3v0v1v2v3無向圖的鄰接矩陣有什么特點(diǎn)?對稱矩陣如何求頂點(diǎn)v
的度?第v行(或第v列)非零元素的個(gè)數(shù)如何判斷頂點(diǎn)i和
j之間是否存在邊?if(edge[i][j]==1)0123存儲示意圖v0v3v2v1如何求頂點(diǎn)i的所有鄰接點(diǎn)?掃描第i
行for(j=0;j<n;j++)if(edge[i][j]==1)
頂點(diǎn)j是頂點(diǎn)i的鄰接點(diǎn)v0v1v2v3vertex=0101101101001100edge=v0
v1
v2
v3v0v1v2v30123存儲示意圖有向圖的鄰接矩陣一定不對稱嗎?頂點(diǎn)間存在方向相反的弧如何求頂點(diǎn)v
的出度?第v行非零元素的個(gè)數(shù)v0v3v2v1如何求頂點(diǎn)v
的入度?第v列非零元素的個(gè)數(shù)v0v1v2v3vertex=01011010
1
0000
000edge=v0
v1
v2
v3v0v1v2v30123v0v1v2v3vertex=05
∞
2
508
7
∞
80∞2
7
∞0edge=v0
v1
v2
v3v0v1v2v3v0v3v2v12785網(wǎng)圖的鄰接矩陣可定義為:arc[i][j]=
wij
若(vi,vj)∈E(或<vi,vj>∈E)0若i=j∞其他存儲示意圖01231.圖的鄰接矩陣采用數(shù)組方式進(jìn)行存儲,因此屬于順序存儲結(jié)構(gòu)。正確錯誤AB提交單選題5分2.無向圖的鄰接矩陣一定是對稱的,有向圖的鄰接矩陣一定是不對稱的。正確錯誤AB提交單選題5分3.用鄰接矩陣存儲圖,所占用的存儲空間大小只與圖中頂點(diǎn)個(gè)數(shù)有關(guān),與圖的邊數(shù)無關(guān)。正確錯誤AB提交單選題5分4.圖采用鄰接矩陣存儲,查找某頂點(diǎn)的所有鄰接點(diǎn),時(shí)間復(fù)雜度是()。O(1)O(n)O(n+e)D.O(n2)ABCD提交單選題5分5.對于圖6-4所示有向圖,畫出鄰接矩陣存儲示意圖。作答正常使用主觀題需2.0以上版本雨課堂主觀題10分鄰接矩陣的類定義publicinterfaceBinaryTreeInterface<T>{publicvoidDFS(intstartIndex);
//圖的深度優(yōu)先遍歷
publicvoidBFS(intstartIndex);
//圖的廣度優(yōu)先遍歷}publicclassMGraph<T>implementsGraphInterface<T>{protectedintvertices_num; //圖的頂點(diǎn)數(shù)
protectedintedge_num; //圖的邊數(shù)
protectedT[]vertices;//一維數(shù)組存儲圖頂點(diǎn)
protectedint[][]adjMatrix;//二維數(shù)組實(shí)現(xiàn)鄰接矩陣
boolean[]visited; //訪問標(biāo)志數(shù)組 //成員函數(shù)實(shí)現(xiàn)圖接口函數(shù)}圖的抽象數(shù)據(jù)類型定義?ADTGraphDataModel…Operation
initGraph
:圖的初始化
DFT:深度優(yōu)先遍歷圖BFT:廣度優(yōu)先遍歷圖endADT建立一個(gè)圖的函數(shù)原型是什么?initGraph
輸入:n
個(gè)頂點(diǎn)
e
條邊
功能:圖的建立
輸出:構(gòu)造一個(gè)含有
n
個(gè)頂點(diǎn)
e
條邊的圖構(gòu)造函數(shù)v0v3v2v1v0v1v2v3a=v0v1v2v3vertex=0101101101001100edge=v0
v1
v2
v3v0v1v2v344vertexNumedgeNum構(gòu)造函數(shù)做什么?偽代碼算法:initGraph輸入:頂點(diǎn)的數(shù)據(jù)a[n],頂點(diǎn)個(gè)數(shù)n,邊的個(gè)數(shù)e輸出:圖的鄰接矩陣1.存儲圖的頂點(diǎn)個(gè)數(shù)和邊的個(gè)數(shù);2.將頂點(diǎn)信息存儲在一維數(shù)組vertex中;3.初始化鄰接矩陣edge;4.依次輸入每條邊并存儲在鄰接矩陣edge中:4.1輸入邊依附的兩個(gè)頂點(diǎn)的編號
i
和
j;4.2將edge[i][j]和edge[j][i]的值置為
1;算法描述publicinitGraph(T[]init_vertices,intn,inte){if(n==0)thrownewGraphException("無頂點(diǎn),圖構(gòu)造失敗。");vertices_num=n; //初始化頂點(diǎn)個(gè)數(shù)this.edge_num=e; //初始化邊個(gè)數(shù)this.vertices=(T[])newObject[vertices_num]; //定義頂點(diǎn)數(shù)組this.adjMatrix=newint[vertices_num][vertices_num];//鄰接矩陣分配空間for(inti=0;i<n;i++){vertices[i]=init_vertices[i];} //初始化頂點(diǎn)數(shù)組
if(edge_num>0){ //初始化鄰接矩陣Scannerreader=newScanner(System.in);for(inti=1;i<=e;i++){System.out.println("輸入第"+i+"條邊第1個(gè)頂點(diǎn)信息");intvertex1=reader.nextInt();System.out.println("輸入第"+i+"條邊第2個(gè)頂點(diǎn)信息");intvertex2=reader.nextInt();adjMatrix[vertex1][vertex2]=1;adjMatrix[vertex2][vertex1]=1;}
}}深度遍歷算法:DFT輸入:頂點(diǎn)的編號v輸出:圖的深度優(yōu)先遍歷序列1.訪問頂點(diǎn)v;修改標(biāo)志visited[v]=1;2.j=頂點(diǎn)v的第一個(gè)鄰接點(diǎn);3.while(j存在)3.1if(j未被訪問)從頂點(diǎn)j出發(fā)遞歸執(zhí)行該算法;3.2j=頂點(diǎn)v的下一個(gè)鄰接點(diǎn);如何在鄰接矩陣中求某頂點(diǎn)的鄰接點(diǎn)?深度遍歷publicvoidDFT(intstartIndex){ visited=newboolean[vertices_num]; //初始化訪問標(biāo)志數(shù)組 iteratorDFT(startIndex);}privatevoiditeratorDFT(intstartIndex){ //深度優(yōu)先遍歷遞歸算法System.out.print(vertices[startIndex].toString()+""); //輸出訪問頂點(diǎn)visited[startIndex]=true; //標(biāo)識頂點(diǎn)已被訪問過for(inti=0;i<vertices_num;i++){if(adjMatrix[startIndex][i]==1&&!visited[i])iteratorDFT(i);}}0101101101001100v0
v1
v2
v3v0v1v2v3v0v1v2v30123算法:BFT輸入:頂點(diǎn)的編號v輸出:圖的廣度優(yōu)先遍歷序列1.隊(duì)列Q初始化;2.訪問頂點(diǎn)v;修改標(biāo)志visited[v]=1;頂點(diǎn)v入隊(duì)列Q;3.while(隊(duì)列Q非空)3.1i=隊(duì)列Q的隊(duì)頭元素出隊(duì);3.2j=頂點(diǎn)v的第一個(gè)鄰接點(diǎn);3.3while(j存在)3.3.1如果j未被訪問,則
訪問頂點(diǎn)j;修改標(biāo)志visited[j]=1;頂點(diǎn)j入隊(duì)列Q;3.3.2j=頂點(diǎn)i的下一個(gè)鄰接點(diǎn);廣度遍歷如何在鄰接矩陣中求某頂點(diǎn)的鄰接點(diǎn)?廣度遍歷publicvoidBFT(intstartIndex){
visited=newboolean[vertices_num]; //初始化訪問標(biāo)志數(shù)組
//工作隊(duì)列初始化QueueInterface<Integer>queue=newCircularQueue<Integer>(vertic
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版數(shù)學(xué)七年級下冊第7課時(shí)《平行線的性質(zhì)(一)》聽評課記錄
- 2025年造紙色漿合作協(xié)議書
- 湘教版數(shù)學(xué)七年級上冊《3.4一元一次方程模型的應(yīng)用(1)》聽評課記錄
- 蘇人版道德與法治九年級上冊7.2《違法要受法律處罰》聽課評課記錄
- 生態(tài)保護(hù)資源共享合同(2篇)
- 環(huán)境監(jiān)測設(shè)備合作開發(fā)合同(2篇)
- 六年級上冊聽評課記錄
- (人教版)七年級下冊數(shù)學(xué)配套聽評課記錄:5.1.3 《同位角、內(nèi)錯角、同旁內(nèi)角》
- 四年級科學(xué)聽評課記錄
- 湘教版數(shù)學(xué)八年級上冊1.1《平方根》聽評課記錄
- 初中音樂聽課筆記20篇
- 央國企信創(chuàng)化與數(shù)字化轉(zhuǎn)型規(guī)劃實(shí)施
- 拆遷征收代理服務(wù)投標(biāo)方案
- 完形療法概述
- SL631-637-2012-水利水電工程單元工程施工質(zhì)量驗(yàn)收評定標(biāo)準(zhǔn)
- 商標(biāo)基礎(chǔ)知識課件
- 監(jiān)理質(zhì)量管理講義監(jiān)理工作的基本知識
- 涉詐風(fēng)險(xiǎn)賬戶審查表
- 2023年大學(xué)英語四級考試模擬真題及答案
- 四年級數(shù)學(xué)上冊口算天天練4
- 蘇教版二年級數(shù)學(xué)寒假輔導(dǎo)提高班課件 第1講 眼花繚亂的數(shù)據(jù)(66張PPT)
評論
0/150
提交評論