在本教程中,您將學習什麼是鄰接矩陣。此外,您還將在c中找到鄰接矩陣的示例。
鄰接矩陣是將圖g=表示為布林矩陣的一種方法。
鄰接矩陣表示法
矩陣的大小是 vxv,其中 v 是圖的頂點數,根據頂點 i 到頂點 j 是否有邊,條目 aij 的值為1或0。
鄰接矩陣示例
下圖顯示了乙個圖形及其等效的鄰接矩陣。
對於無向圖,由於每一條邊(i,j)的存在,矩陣關於對角線對稱,因此也有一條邊(j,i)。
鄰接矩陣的優點
新增邊、刪除邊以及檢查從頂點 i 到頂點 j 是否有邊等基本操作都是非常省時的常規操作。
如果圖是密集的,且邊的數目較大,則鄰接矩陣是首選。即使圖和鄰接矩陣是稀疏的,我們也可以用稀疏矩陣的資料結構來表示它。
圖的最大的優勢來自於矩陣的使用。硬體的最新發展使我們能夠在gpu上執行代價很大的矩陣運算。
通過對鄰接矩陣進行運算,我們可以深入了解圖的性質及其頂點之間的關係。
鄰接矩陣的缺點
鄰接矩陣的 vxv 空間要求使它占用很多記憶體。自然的圖通常沒有太多連線,這就是為什麼鄰接列表是大多數任務的更好選擇的主要原因。
雖然基本操作很簡單,但在使用鄰接矩陣表示時,像增加邊和刪除邊這樣的操作代價很大。
c示例如果您知道如何建立二維陣列,那麼您也知道如何建立鄰接矩陣。
// adjacency matrix representation in c
#include
#define v 4
// initialize the matrix to zero
void
init
(int arr[
][v]
)// add edges
void
addedge
(int arr[
][v]
,int i,
int j)
// print the matrix
void
printadjmatrix
(int arr[
][v]
)printf
("\n");
}}intmain()
鄰接矩陣應用
參考文件
[1]parewa labs pvt. ltd.adjacency matrix[eb/ol].
鄰接矩陣學習
鄰接矩陣 是表示頂點之間相鄰關係的矩陣。因此,用乙個一維陣列存放圖中所有頂點資料 用乙個二維陣列存放頂點間的關係 邊或弧 的資料,這個二維陣列稱為鄰接矩陣。鄰接矩陣又分為有向圖鄰接矩陣和無向圖鄰接矩陣。設g v,e 是乙個圖,其中v g的鄰接矩陣是乙個具有下列性質的n階方陣 對無向圖而言,鄰接矩陣一...
鄰接矩陣學習
鄰接矩陣 是表示頂點之間相鄰關係的矩陣。因此,用乙個一維陣列存放圖中所有頂點資料 用乙個二維陣列存放頂點間的關係 邊或弧 的資料,這個二維陣列稱為鄰接矩陣。鄰接矩陣又分為有向圖鄰接矩陣和無向圖鄰接矩陣。設g v,e 是乙個圖,其中v g的鄰接矩陣是乙個具有下列性質的n階方陣 對無向圖而言,鄰接矩陣一...
鄰接矩陣(Adjacency Matrix)
鄰接矩陣的特點 1 對於有n個頂點的無向圖最多需要n n 1 2個儲存空間,有向圖最多需要n 2個儲存空間 2 對於無向圖,鄰接矩陣第i行元素之和是圖第i個頂點的度 3 鄰接矩陣適用於稠密圖 4 方便搜尋兩頂點是否有邊或弧 鄰接矩陣的屬性 public static final int inf 32...