0
グラフと始点を消費するbfsトラバーサルを作成しました。隣接リストで表されたグラフを消費しますが、隣接行列を消費するためにはどのように変更しますか?私はちょうど隣接行列を使った幅優先探索
隣接リストを開始する場所が必要:
{0:[1,2,3],1:[0,2,3],2:[0,1,4],3:[0,1],4:[2]}
隣接行列:
[ [0,1,1,1,0],
[1,0,1,1,0],
[1,1,0,0,1],
[1,1,0,0,0],
[0,0,1,0,0] ]
def bfs(graph, v):
all = []
Q = []
Q.append(v)
while Q != []:
v = Q.pop(0)
all.append(v)
for n in graph[v]:
if n not in Q and\
n not in all:
Q.append(n)
return all
隣接リストの表現を使用する部分を見てください。あなたはノードの隣人を反復しています。隣接行列を持つノードの隣接ノードを反復処理する方法を解説します。 – user2357112