BFS traversal a directed graph, vetex is simple int type.

four methods:
    BFS(s) # traverse starting from s
    isConnected(u,v) # wether u can connect to v (directed)
    dijkstra(s) # if each edge has weight, return the lightest weight from each vertex to s
    isBipartite() # whether this graph can be separated as two groups of vertexes that each edge connects across groups.