




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
圖圖的定義和存儲第1頁,共21頁,2023年,2月20日,星期五圖的定義:
圖G是由頂點集V和頂點間的關(guān)系集合E(邊的集合)組成的一種數(shù)據(jù)結(jié)構(gòu),可以用二元組定義為:G=(V,E)。例如,對于圖7-1所示的無向圖G1和有向圖G2,它們的數(shù)據(jù)結(jié)構(gòu)可以描述為:G1=(V1,E1),其中V1={a,b,c,d},E1={(a,b),(a,c),(a,d),(b,d),(c,d)},而G2=(V2,E2),其中V2={1,2,3},E2={<1,2>,<1,3>,<2,3>,<3,1>}。7.1圖的基本概念第2頁,共21頁,2023年,2月20日,星期五7.2圖的存貯結(jié)構(gòu)圖無法以數(shù)據(jù)元素在存儲區(qū)中的物理位置來表示元素之間關(guān)系,即圖沒有順序映象的存儲結(jié)構(gòu)。用多重鏈表表示圖,即以一個數(shù)據(jù)域和多個指針域組成的結(jié)點表示圖中一個頂點,其中數(shù)據(jù)域存儲該頂點的信息,指針域存儲指向其鄰接點的指針。常用的有鄰接矩陣、鄰接表和十字鏈表等。不管哪一種方式,它除了要存儲圖中各個頂點本身的信息外,同時還要存儲頂點與頂點之間的所有關(guān)系(邊的信息)。第3頁,共21頁,2023年,2月20日,星期五多重鏈表例G12413例15324G2V1V2^^V4^V3^
^V1
V2
V4^
V5^
V3第4頁,共21頁,2023年,2月20日,星期五1.圖的鄰接矩陣表示在鄰接矩陣表示中,除了存放頂點本身信息外,還用一個矩陣表示各個頂點之間的關(guān)系。若(i,j)∈E(G)或〈i,j〉∈E(G),則矩陣中第i行第j列元素值為1,否則為0。圖的鄰接矩陣定義為:
1若(i,j)∈E(G)或〈i,j〉∈E(G)A[i][j]=0其它情形7.2.1鄰接矩陣第5頁,共21頁,2023年,2月20日,星期五例如,對圖7-8所示的無向圖和有向圖的鄰接矩陣。第6頁,共21頁,2023年,2月20日,星期五2.從無向圖的鄰接矩陣可以得出如下結(jié)論
(1)矩陣是對稱的,可壓縮存儲(上(下)三角);(2)第i行或第i列中1的個數(shù)為頂點i的度;(3)矩陣中1的個數(shù)的一半為圖中邊的數(shù)目;(4)很容易判斷頂點i和頂點j之間是否有邊相連(看矩陣中i行j列值是否為1)。3.從有向圖的鄰接矩陣可以得出如下結(jié)論(1)矩陣不一定是對稱的;(2)第i行中1的個數(shù)為頂點i的出度;(3)第i列中1的個數(shù)為頂點i的入度;(4)矩陣中1的個數(shù)為圖中弧的數(shù)目;(5)很容易判斷頂點i和頂點j是否有弧相連.第7頁,共21頁,2023年,2月20日,星期五4.網(wǎng)的鄰接矩陣表示類似地可以定義網(wǎng)的鄰接矩陣為:
wij
若(i,j)∈E(G)或〈i,j〉∈E(G)A[i][j]=∞其它情形網(wǎng)及網(wǎng)的鄰接矩陣見下圖。第8頁,共21頁,2023年,2月20日,星期五鄰接矩陣法優(yōu)點:容易實現(xiàn)圖的操作,如:求某頂點的度、判斷頂點之間是否有邊(?。?、找頂點的鄰接點等等。鄰接矩陣法缺點:n個頂點需要n*n個單元存儲邊(弧);空間效率為O(n2)。對稀疏圖而言尤其浪費空間。第9頁,共21頁,2023年,2月20日,星期五1.圖的鄰接表表示圖的鄰接表存儲方法是一種順序分配與鏈式分配相結(jié)合的存儲方法,它包括兩部分:一部分是單鏈表,用來存放邊的信息;另一部分是數(shù)組,主要用來存放頂點本身的數(shù)據(jù)信息。adjvexweightnext邊結(jié)點頂點結(jié)點7.2.2鄰接表第10頁,共21頁,2023年,2月20日,星期五左圖所示的無向圖G3和有向圖G4的鄰接表見右圖所示:第11頁,共21頁,2023年,2月20日,星期五2.從無向圖的鄰接表可以得到如下結(jié)論
(1)第i個鏈表中結(jié)點數(shù)目為頂點i的度;(2)所有鏈表中結(jié)點數(shù)目的一半為圖中邊數(shù);(3)占用的存儲單元數(shù)目為n+2e。3.從有向圖的鄰接表可以得到如下結(jié)論(1)第i個鏈表中結(jié)點數(shù)目為頂點i的出度;(2)所有鏈表中結(jié)點數(shù)目為圖中弧數(shù);(3)占用的存儲單元數(shù)目為n+e。從有向圖的鄰接表可知,不能求出頂點的入度。為此,我們必須另外建立有向圖的逆鄰接表,以便求出每一個頂點的入度。第12頁,共21頁,2023年,2月20日,星期五例:已知某網(wǎng)的鄰接(出邊)表,請畫出該網(wǎng)絡(luò)。8064125當(dāng)鄰接表的存儲結(jié)構(gòu)形成后,圖便唯一確定!第13頁,共21頁,2023年,2月20日,星期五鄰接表的優(yōu)點:空間效率高;容易尋找頂點的鄰接點;鄰接表的缺點:判斷兩頂點間是否有邊或弧,需搜索兩結(jié)點對應(yīng)的單鏈表,沒有鄰接矩陣方便。第14頁,共21頁,2023年,2月20日,星期五4.圖的鄰接表數(shù)據(jù)類型描述圖的鄰接表數(shù)據(jù)類型描述如下:#defineMAXN50/*MAXN表示圖中最大頂點數(shù)*/typedefstructe_node//定義邊結(jié)點的結(jié)構(gòu){intadjvex;intweight;structe_node*next;}E_NODE;typedefstructv_node//定義鄰接表的表頭類型{intvertex;//頂點信息
E_NODE*link;}V_NODE;V_NODEhead[MAXN];第15頁,共21頁,2023年,2月20日,星期五討論:鄰接表與鄰接矩陣有什么異同之處?1.聯(lián)系:鄰接表中每個鏈表對應(yīng)于鄰接矩陣中的一行,鏈表中結(jié)點個數(shù)等于一行中非零元素的個數(shù)。2.區(qū)別:①對于任一確定的無向圖,鄰接矩陣是唯一的(行列號與頂點編號一致),但鄰接表不唯一(鏈接次序與頂點編號無關(guān))。②鄰接矩陣的空間復(fù)雜度為O(n2),而鄰接表的空間復(fù)雜度為O(n+e)。3.用途:鄰接矩陣多用于稠密圖的存儲(e接近n(n-1)/2);而鄰接表多用于稀疏圖的存儲(e<<n2)第16頁,共21頁,2023年,2月20日,星期五有向圖的十字鏈表表示法弧結(jié)點:typedefstructarcnode{inttailvex,headvex;//弧尾、弧頭在表頭數(shù)組中位置structarcnode*hlink;//指向弧頭相同的下一條弧structarcnode*tlink;//指向弧尾相同的下一條弧}AD;tailvexheadvexhlinktlink頂點結(jié)點:typedefstructdnode{intdata;//存與頂點有關(guān)信息structarcnode*firstin;//指向以該頂點為弧頭的第一個弧結(jié)點structarcnode*firstout;//指向以該頂點為弧尾的第一個弧結(jié)點}DD;DDg[M];//g[0]不用datafirstinfirstout第17頁,共21頁,2023年,2月20日,星期五例bdacabcd1234
13
12
34
31
43
42
41^^^^^^^^第18頁,共21頁,2023年,2月20日,星期五無向圖的鄰接多重表表示法頂點結(jié)點:typedefstructdnode{intdata;//存與頂點有關(guān)的信息structnode*firstedge;//指向第一條依附于該頂點的邊}DD;DDga[M];//ga[0]不用datafirstedge邊結(jié)點:typedefstructnode{intmark;//標(biāo)志域
intivex,jvex;//該邊依附的兩個頂點在表頭數(shù)組中位置
structnode*ilink,*jlink;//分別指向依附于ivex和jvex的下一條邊}JD;markivexilinkjvexjlink第19頁,共21頁,2023年,2月20日,星期五例aecbd1234acdb5e
12
14
34
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZHCA 025-2023 化妝品抗氧化人體測試方法
- 沈陽生姜種植與市場推廣2025年度聯(lián)合發(fā)展合同
- 2025年度自愿離婚協(xié)議書:子女撫養(yǎng)權(quán)及監(jiān)護責(zé)任協(xié)議
- 二零二五年度創(chuàng)新型企業(yè)員工股權(quán)激勵合同
- 2025年度金融服務(wù)違約賠償協(xié)議范本
- 2025年度美容院美容師職業(yè)保險與福利合作協(xié)議
- 二零二五年度國際物流公司總經(jīng)理聘用協(xié)議
- 二零二五年度專業(yè)冷庫租賃與溫控技術(shù)支持協(xié)議
- 二零二五年度物流行業(yè)勞動合同法更新及風(fēng)險防范合同
- 二零二五年度心理咨詢服務(wù)連鎖機構(gòu)心理咨詢師聘用合同
- 2024至2030年中國細胞農(nóng)業(yè)動向追蹤與發(fā)展前景現(xiàn)狀探索報告
- 2025初級社會工作實務(wù)考試要點速記
- 數(shù)據(jù)中心全生命周期綠色算力指數(shù)白皮書 2024
- 接觸網(wǎng)工高級技師理論試題庫及答案
- 二年級下冊口算題大全(全冊可直接打印)
- 初中美術(shù)備課組工作計劃
- 湖北省武漢市江岸區(qū)2024年七年級下學(xué)期期末數(shù)學(xué)試題附答案
- 辦公區(qū)域主要風(fēng)險辨識與分級管控清單
- 2024-2034年中國藏香豬養(yǎng)殖行業(yè)市場深度分析及發(fā)展?jié)摿︻A(yù)測報告
- 小學(xué)科學(xué)湘科版六年級下冊全冊同步練習(xí)含答案
- 人教版小學(xué)五年級英語上冊作文專項練習(xí)題
評論
0/150
提交評論