
鄰接矩陣和鄰接表
圖的存儲(chǔ)結(jié)構(gòu)主要分兩種,?種是鄰接矩陣,?種是鄰接表。
1.鄰接矩陣
鄰接矩陣的存儲(chǔ)?式是?兩個(gè)數(shù)組來表?圖。?個(gè)?維數(shù)組儲(chǔ)存圖中頂點(diǎn)信息,?個(gè)?維數(shù)組儲(chǔ)存圖中的邊或弧的信息。
?向圖
這?右圖是把頂點(diǎn)作為矩陣內(nèi)?和列的標(biāo)頭羅列出來。如果在兩個(gè)頂點(diǎn)之間存在?條邊,那么就把1放在這個(gè)位置上。如果邊不存
在,那么就賦值為0。
從上?可以看出,?向圖的邊數(shù)組是?個(gè)對(duì)稱矩陣。所謂對(duì)稱矩陣就是n階矩陣的元滿?aij=aji。即從矩陣的努力工作的成語 左上?到右下?的主對(duì)?
線為軸,右上?的元和左下?相對(duì)應(yīng)的元全都是相等的。
從矩陣中很容易分析到圖中信息:
1)判斷頂點(diǎn)之間是否入黨感想 有邊很容易;
2)要知道頂點(diǎn)的度,其實(shí)就是這個(gè)頂點(diǎn)在第i?(或第i列)的元素之和;
3)求頂點(diǎn)vi的所有鄰接點(diǎn)就是將矩陣中第i?元素掃描?遍,arc[i][j]為1學(xué)習(xí)linux 就是鄰接點(diǎn)。
有向圖
上圖圖右是?個(gè)有向圖。有向圖是看?度和出度的(頂五式太極拳 點(diǎn)的?邊數(shù)和出邊數(shù)),例如V2,就有2個(gè)出邊。列代表著頂點(diǎn)的?邊,列的元素
相加代表頂點(diǎn)的?度,??則代表該頂點(diǎn)所有的出邊,元素相加則為頂點(diǎn)的出度。假如V2->V1的這個(gè)關(guān)系要寫到鄰接矩陣,?先先找到V1
的列,然后在對(duì)應(yīng)V2?的位置寫上?個(gè)1,就可以了。
?絡(luò)
?絡(luò)是?個(gè)帶權(quán)圖。鄰接矩陣如下圖:
有兩種表??法,沒有邊的兩個(gè)頂點(diǎn),可以?0表?,也可以?最?值表?。
2.鄰接表
鄰接矩陣是不錯(cuò)的?種圖存儲(chǔ)結(jié)構(gòu),但是,對(duì)于邊數(shù)相對(duì)頂點(diǎn)較少的圖,這種結(jié)構(gòu)存在對(duì)存儲(chǔ)空間的極?浪費(fèi)。因此,找到?種數(shù)組與
鏈表相結(jié)合的存儲(chǔ)?法稱為鄰接表。
鄰接表的處理?法是這樣的:
1)圖中頂點(diǎn)??個(gè)?維數(shù)組存儲(chǔ),當(dāng)然,頂后悔造句 點(diǎn)也可以?單鏈表來存儲(chǔ),不過,數(shù)組可天秤男和射手女 以較容易的讀麻將的打法 取頂點(diǎn)的信息,更加?便。
2)圖中每個(gè)頂點(diǎn)vi的所有鄰接點(diǎn)構(gòu)成?個(gè)線性表,由于鄰接點(diǎn)的個(gè)數(shù)不定,所以,?單鏈表存儲(chǔ),?向圖稱為頂點(diǎn)vi的邊表,有向圖
則稱為頂點(diǎn)vi作為弧尾的出邊表(只管頂點(diǎn)的出邊不管?邊)。
從圖中可以看出,頂點(diǎn)表的各個(gè)結(jié)點(diǎn)由data和firstedge兩個(gè)域表?,data是數(shù)據(jù)域,存儲(chǔ)頂點(diǎn)的信息,firstedge是指針古風(fēng)詞匯 域,指向邊表
的第?個(gè)結(jié)點(diǎn),即此頂點(diǎn)的第?個(gè)鄰接點(diǎn)。邊表結(jié)點(diǎn)由adjvex和next兩個(gè)域組成。adjvex是鄰接點(diǎn)域,存儲(chǔ)某頂點(diǎn)的鄰接點(diǎn)在頂點(diǎn)表中的
下標(biāo),next則存儲(chǔ)指向邊表中下?個(gè)結(jié)點(diǎn)的指針。
本文發(fā)布于:2023-03-17 07:41:58,感謝您對(duì)本站的認(rèn)可!
本文鏈接:http://m.newhan.cn/zhishi/a/1679010119145513.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請(qǐng)勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除。
本文word下載地址:邊表.doc
本文 PDF 下載地址:邊表.pdf
| 留言與評(píng)論(共有 0 條評(píng)論) |
|