图的广度优先遍历

算法 BreadthFirstSearch(v)
    // 以序号为v的顶点出发,广度优先遍历图
BFS1 [创建一个辅助队列]
    CREATE(Q).
    
BFS2 [开始节点入队]
    Q <= v.
    
BFS3 [创建辅助数组,记录哪些节点已经被访问]
    visited[].
    
BFS4 [初始化辅助数组]
    FOR i FROM 0 TO graphsize DO
        ( visited[i] <- 0. )
    
BFS5 [利用队列进行广度优先遍历]
    WHILE NOT Empty(Q) DO
        ( k <= Q.
          IF NOT(visited[k]) THEN ( visited[k] <- 1.
                                    PRINT(k). )
          w <- GetFirstNeighbor(k).
          WHILE w != -1 DO
              ( IF NOT(visited[w]) THEN ( Q <= w. )
                w <- GetNextNeighbor(k, w). // 返回在图中节点k的位于w之后的相邻节点
              )
        )
原文地址:https://www.cnblogs.com/wangshuo/p/2208861.html