# グラフgと始点ノードs
breadthFirstSearch(g, s):
    Queue que

    for i ← 0 to g.N - 1:
        color[i] ← WHITE

    color[s] ← GRAY
    que.enqueue(s)
    
    while not que.empty():
        u ← que.dequeue()
        color[u] ← BLACK
        for v in g.adjLists[u]:
            if color[v] = WHITE:
                color[v] ← GRAY
                que.enqueue(v)