圖的基本知識

一:圖的定義

一個圖G=V,E)由定點集V和邊集E組成,每一條邊都是一個點對(v,w),其中v,w屬於V。如果點對是有序的,那麼圖就叫做有向的。有向的圖有時也叫做有向圖。定點v,w鄰接當且僅當(v,w)屬於E。有時候邊還有第三種成分,稱爲權或值。

圖的一條路徑是一個頂點序列W1W2W3~Wn,使得(WiWi+1)屬於E,這樣一條路徑的長是該路徑上的邊數,它等於N-1.。從一個頂點到它自身可以看作是一條路徑,如果路徑不包含邊,那麼路徑長爲0,這是定義特殊情況的方便的方法。如果圖含有一條從一個頂點到它自身的邊(v,w),那麼路徑v,w也叫做一個環。爲們討論的圖一般是無環的。

一條簡單路徑是這樣的:其上所有頂點都是互異的,但第一個頂點和最後一個頂點可能相同。

如果一個無向圖中從每一個頂點到每個其他頂點都存在一條路徑,則稱其爲連同的。具有這樣性質的有向圖稱爲是強連通的。如果一個有向圖不是強連通的,但是它的基礎圖,即弧上去掉方向所形成的圖是連通的,那麼該有向圖稱爲是弱連通的。完全圖是其每一對頂點間都存在一條邊的圖。

二:圖的表示

我們將考慮有向圖(無向圖可以類似表示)

表示圖的一種簡單的方法是使用二維數組,稱爲鄰接矩陣表示法。對於每一條邊(u,v),我們置A[u][v]=1,否則數組元素就置0,也就是如果邊存在就是1,不存在就是0,如果有權

就將權賦給A[u][v]。而使用一個很大或很小的權做爲標記來表示一條不存在的邊。

鄰接矩陣法很簡單,但是它的缺點也很明顯,如果一個圖的邊不多的話,它太浪費空間了,因爲矩陣所需要的空間是N^2。如果圖的邊比較多,那這是比較合適的方法。

如果圖是稀疏的,更好的辦法是用鄰接表來表示。對每一個頂點,我們使用一個表存放所有鄰接的頂點。數組表示不方便的一般都用鏈表代替。

鄰接表是表示圖的標準方法,每條邊出現在倆個表中,所以此空間的使用是雙倍的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章