Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- BFS(G, s) {
- double inf = std::numeric_limits<double>::infinity();
- for (int i = 0; i < G.v.size(); i++) {
- if(G.v[i] != s) {
- G.v[i].color = "white";
- G.v[i].d = inf;
- G.v[i].parent = null;
- }
- }
- s.color = "gray";
- s.d = 0;
- s.parent = null;
- std::vector<Node> Q;
- Enqueue(Q,s);
- while (Q.size() > 0) {
- Node u = Dequeue(Q);
- std::vector<Node> AdjacentList = G.adj[u];
- for (int i = 0; i < AdjacentList.size(); i++) {
- if(AdjacentList[i].color == "white") {
- AdjacentList[i].color = "gray";
- AdjacentList[i].d = u.d + 1;
- AdjacentList[i].parent = u;
- Enqueue(Q, AdjacentList[i]);
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment