private void dfs(Graph G, int v) { marked[v] = true; foreach (int w in G.GetAdjacentVertices(v)) { if (!marked[v]) { marked[v] = true; edgeTo[w] = v; dfs(G, w); } } }
private void bfs(Graph G, int s) { Queue <int> queue = new Queue <int>(); marked[s] = true; queue.Enqueue(s); while (queue.Count != 0) { int v = queue.Dequeue(); foreach (int w in G.GetAdjacentVertices(v)) { if (!marked[w]) { marked[w] = true; edgeTo[w] = v; queue.Enqueue(w); } } } }