import collections
class graph:
    def __init__(self,point,graph):
        self.graph=graph #传入的临接表
        self.point=point #数组
        self.visited=[0 for _ in range(len(graph))]
    def bfs(self,n):
        queue=collections.deque([n]) #第一个元素入队列
        self.visited[n]=1
        while queue:
            node_index=queue.popleft() #从队列左边弹出
            print(self.point[node_index]) #打印当前队列弹出点的值
            for i in range(len(self.graph)):
                if self.graph[node_index][i]==1 and self.visited[i]==0: #相邻且未被访问
                    queue.append(i)
                    self.visited[i]=1
                    
test= [[0,1,0,1,1],
       [1,0,1,0,0],
       [0,1,0,0,0],
       [1,0,0,0,1],
       [1,0,0,1,0]]
point=[1,2,3,4,5]
graph(point,test).bfs(0)