圖的數組(鄰接矩陣)存儲表示
數組
方法:將圖的頂點信息存儲在一個一維數組中,並將它的鄰接矩陣存儲在一個二位數組中即構成圖的數組(鄰接矩陣)表示。spa
無向圖的鄰接矩陣具備以下特色:.net
1,它是對稱陣,(i,j)= (i,j)blog
2,第i行或者第i列上數值爲1的元素個數,等於頂點i的度數。ci
3,整個矩陣中數值爲1的元素個數,等於邊數的2倍。get
有向圖鄰接矩陣具備以下特色:博客
1,通常狀況下,它不是對稱陣,(i ,j) != (i,j)it
2,第i行上數值爲1的元素個數等於頂點i的出度;遍歷
3,第i列上1元素的個數等於頂點i的入度。方法
4,整個矩陣中數值爲1的元素的個數等於弧數。
若是邊或者弧帶權,能夠在鄰接矩陣中表現出來,將數值爲1的元素,換成相應的權重便可。
鄰接表
思路:頂點信息用連續空間存儲,邊(弧)即頂點之間的關係經過單鏈表表示。
有向圖:
出度容易查找,入度須要遍歷全部表。
無向圖:
求頂點的度很是容易,只須要把對應的鏈表節點個數求出。
因而可知,求有向圖的頂點入度是比較困難的,因此就有了逆鄰接表
十字鏈表
十字鏈表是有向圖的一種鏈式存儲結構。
鄰接多重表
鄰接多重表是無向圖的一種鏈式存儲結構。
學PHP的小螞蟻 博客 http://my.oschina.net/woshixiaomayi/blog