圖的邊集數組存儲


圖的存儲結構:

 

如果我們在無向圖的應用中,關注的重點是頂點的話,那么鄰接表是不錯的選擇,但是我們關注的是邊的操作,比如對已經訪問過的邊做標記,或者刪除某一條邊等操作,鄰接表就顯得不那么方便了。

 

圖解:

 

若要刪除(v0,v2)這條邊,就需要對鄰接表結構中邊表的兩個節點進行刪除操作。

相對操作比較麻煩!

 

因此,也仿照十字鏈表的方式,對邊表結構進行改裝,重新定義的邊表結構如下:

iVex

iLink

jVex

jLink

 

其中iVex和jVex是與某條邊依附的兩個頂點的頂點下標。iLink指向依附頂點iVex的下一條邊,jLink指向依附頂點jVex的下一條邊。

也就是說在鄰接多重表里邊,這表存放的是一條邊,而不是一個頂點。

 

 

 

 

上圖遵循:iVex和jVex是與某條邊依附的兩個頂點的頂點下標。iLink指向依附頂點iVex的下一條邊,jLink指向依附頂點jVex的下一條邊,而形成。

 

 

邊集數組:

邊集數組是由兩個一維數組構成,一個是存儲頂點的信息,另一個是存儲邊的信息,這個邊數組每個數據元素由一條邊的起點下標(begin),終點下標(end)和權(weight)組成。

 

圖解:

 

頂點數組

V0

 V1

V2

V3

 

邊數組

Begin

End

Weight

0

0

3

5

1

1

0

4

2

1

2

3

3

2

0

8

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM