圖的鄰接矩陣(Adjacency Matrix)存儲方式是用兩個數組來表示圖。一個一維的數組存儲圖中頂點信息,一個二維數組(稱為鄰接矩陣)存儲圖中的邊或弧的信息。
設圖G有n個頂點,則鄰接矩陣是一個n*n的方陣,定義為:

我們來看一個實例,圖7-4-2的左圖就是一個無向圖。

我們再來看一個有向圖樣例,如圖7-4-3所示的左圖。

在圖的術語中,我們提到了網的概念,也就是每條邊上都帶有權的圖叫做網。那些這些權值就需要保存下來。
設圖G是網圖,有n個頂點,則鄰接矩陣是一個n*n的方陣,定義為:

如圖7-4-4左圖就是一個有向網圖。

對於圖來說,鄰接矩陣是不錯的一種圖存儲結構,但是我們也發現,對於邊數相對頂點較少的圖,這種結構是存在對存儲空間的極大浪費的。因此我們考慮另外一種存儲結構方式:鄰接表(Adjacency List),即數組與鏈表相結合的存儲方法。
鄰接表的處理方法是這樣的。
1、圖中頂點用一個一維數組存儲,另外,對於頂點數組中,每個數據元素還需要存儲指向第一個鄰接點的指針,以便於查找該頂點的邊信息。
2、圖中每個頂點vi的所有鄰接點構成一個線性表,由於鄰接點的個數不定,所以用單鏈表存儲,無向圖稱為頂點vi的邊表,有向圖稱為頂點vi作為弧尾的出邊表。
例如圖7-4-6就是一個無向圖的鄰接表結構。
若是有向圖,鄰接表的結構是類似的,如圖7-4-7,以頂點作為弧尾來存儲邊表容易得到每個頂點的出度,而以頂點為弧頭的表容易得到頂點的入度,即逆鄰接表。
對於帶權值的網圖,可以在邊表結點定義中再增加一個weight的數據域,存儲權值信息即可,如圖7-4-8所示。