BFS 从 0 出发的访问顺序
同一张图,这次用队列一圈一圈扩。运行下面这段程序:
from collections import deque
def bfs(g, s):
seen = {s}
q = deque([s])
out = []
while q:
u = q.popleft()
out.append(u)
for v in g[u]:
if v not in seen:
seen.add(v)
q.append(v)
return out
g = {0: [1, 2], 1: [0, 3], 2: [0, 4],
3: [1, 4], 4: [2, 3], 5: [6], 6: [5]}
print("/".join(str(x) for x in bfs(g, 0)))
全部评论