標籤:

鄰接矩陣的應用

用c#實現圖演算法時,我們常用鄰接矩陣來表現兩個節點之間的指向關係(有點類似於向量),這個指向關係也叫做「邊」。

一般以矩陣的「行」為指向的起點,「列」指向的終點。兩節點有指向關係,那麼在矩陣中,我們就用1表示,沒有指向關係,則用0表示。

無向圖與有向圖的區別,可以認為:無向圖就是所有節點的指向均是雙向的,即所有節點都是雙向的有向圖。(如下圖所示,兩者是等價的。)

因為鄰接矩陣是反應節點指向關係的,所以無向圖的矩陣一定是對稱的。

下面用一個鄰接矩陣來表示一個有向圖各節點的關係:

綜上,通過這種方法,我們就可以定義任意兩個節點有指向(或者說相鄰、相關)了。因為沒有指向的為1,沒有指向的為0。

基於此我們也能知道,當G=(V,E),其中V為節點,E為邊。n為節點的個數,m為邊的個數。那麼,相鄰矩陣為一個 n^2 的矩陣,且m <= n^2


推薦閱讀:

布爾表達式求值
024 Swap Nodes in Pairs[M]
今日頭條演算法原理(全)

TAG:C | 演算法 |