小螞蟻學習數據結構(29)——圖的存儲表示

圖的數組(鄰接矩陣)存儲表示
數組

    方法:將圖的頂點信息存儲在一個一維數組中,並將它的鄰接矩陣存儲在一個二位數組中即構成圖的數組(鄰接矩陣)表示。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

相關文章
相關標籤/搜索