using System.Collections.Generic;
public static void Main()
static Graph graph = new Graph(new List<int>[] {
new List<int>() {1, 2, 6},
new List<int>() {1, 2, 3}
static bool[] visited = new bool[graph.Size];
public static void TraverseDFS(int v)
Console.WriteLine(v + " ");
foreach (int child in graph.GetSuccessors(v))
public static void Main()
Console.WriteLine("Connected graph components: ");
for (int v = 0; v < graph.Size; v++)
private List<int>[] childNodes;
this.childNodes = new List<int>[size];
for (int i = 0; i < size; i++)
this.childNodes[i] = new List<int>();
public Graph(List<int>[] childNodes)
this.childNodes = childNodes;
return this.childNodes.Length;
public void AddEdge(int u, int v)
public void RemoveEdge(int u, int v)
public bool HasEdge(int u, int v)
bool hasEdge = childNodes[u].Contains(v);
public IList<int> GetSuccessors(int v)