BFS(G,s) for each u ∈ V[G]-{s} do open[u] = true d[u] = ∞ pred[u] = null open[s] = false d[s] = 0 pred[s] = null Q = {s} while Q ≠ {} do u = Remove[Q] for each v ∈ Adj[u] do if open[v] = true then open[v] = false d[v] = d[u] + 1 pred[v] = u Add(Q,v) |
DFS(G,s) for each u ∈ V[G]-{s} do open[u] = true d[u] = ∞ pred[u] = null open[s] = false d[s] = 0 pred[s] = null S = {s} while S ≠ {} do u = Pop[S] for each v ∈ Adj[u] do if open[v] = true then open[v] = false d[v] = d[u] + 1 pred[v] = u Push(S,v) |