算法 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之后的相邻节点
)
)
浙公网安备 33010602011771号