Python語(yǔ)言支持許多圖論算法的實(shí)現(xiàn),其中鄰接矩陣是十分重要的一種數(shù)據(jù)結(jié)構(gòu)。鄰接矩陣是一種表示無向圖或有向圖的方式,它可以用二維數(shù)組來存儲(chǔ)圖數(shù)據(jù)。
graph = [[0, 1, 1, 0],
[1, 0, 1, 1],
[1, 1, 0, 1],
[0, 1, 1, 0]]
以上代碼是一個(gè)4個(gè)節(jié)點(diǎn)的無向圖的鄰接矩陣表示。圖中節(jié)點(diǎn)用0到3表示,二維數(shù)組中每個(gè)元素表示兩個(gè)節(jié)點(diǎn)之間是否有一條邊。如果兩個(gè)節(jié)點(diǎn)之間有一條邊,那么相應(yīng)的元素值為1,否則為0。
def printGraph(graph):
for row in graph:
for col in row:
print(col, end=' ')
print()
以上代碼是一個(gè)可以遍歷鄰接矩陣的函數(shù)。可以通過傳入鄰接矩陣來用該函數(shù)打印出圖的結(jié)構(gòu)。
鄰接矩陣可以方便地用來實(shí)現(xiàn)如最短路徑、最小生成樹、拓?fù)渑判虻葓D論算法。