伪代码:
BFS(G,s)
for each vertex v in V[G]
status[v] = WHITE
/******其他初始化******/
status[s] = GRAY //s是原点
queue q
入队(q,s);
while q非空
t = 出队(q);
for each vertex v in Adj[t] //与t邻接的点
if status[v] = WHITE //只对未访问的操作
status[v] = GRAY //标记为第一次访问
/******其他操作******/
入队(q,v)
status[t] = BLACK //此点已经处理完了
自己做过的一道题,可以提炼出BFS的C语言版模版: