public void DeepFirstTest() { var graph = new UndirectedGraph <string>(); graph.Add("v1"); graph.Add("v2"); graph.Add("v3"); graph.Add("v4"); graph.Add("v5"); graph.Add("v6"); graph.Add("v7"); graph.Add("v8"); graph.Add(new UndirectedEdge <string>("v1", "v2")); graph.Add(new UndirectedEdge <string>("v1", "v3")); graph.Add(new UndirectedEdge <string>("v2", "v4")); graph.Add(new UndirectedEdge <string>("v2", "v5")); graph.Add(new UndirectedEdge <string>("v4", "v8")); graph.Add(new UndirectedEdge <string>("v5", "v8")); graph.Add(new UndirectedEdge <string>("v3", "v6")); graph.Add(new UndirectedEdge <string>("v3", "v7")); graph.Add(new UndirectedEdge <string>("v6", "v7")); foreach (var vertex in graph.DeepFirst()) { Console.WriteLine(vertex); } }