版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28711703/article/details/84564042
#coding=utf-8
import queue
#图的邻接表
grap=[[],
[2,3],
[1,4],
[1],
[2,5,6],
[4],
[4,7],
[6],
[10],[9],
[8],
[8]]
//BFS 遍历结果为 [1, 2, 3, 4, 5, 6, 7, 8, 10, 9]
#初始化
visit=[]#节点的访问顺序
count=0;
for i in range(11):
visit.append(0)
#访问u节点的所有邻接节点
def get_all_beside_node(u):
return grap[u]
#BFS 遍历一个临接子图
def BFS(i):
q=queue.Queue();
q.put(i)
global count
count += 1
visit[i]=count
while(not q.empty()):
u=q.get()
for w in get_all_beside_node(u):
if(visit[w]==0):
q.put(w)
count+=1
visit[w]=count
#遍历整棵树 可能是非连通图
for i in range(1,11):
if(visit[i]==0):
BFS(i)
print(visit[1:11])