public void BreadthFirstTest()
        {
            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.BreadthFirst())
            {
                Console.WriteLine(vertex);
            }
        }