Example #1
0
        static void Main(string[] args)
        {
            var graph = new Graph();

            var a = graph.CreateRoot(1);
            var b = graph.CreateVertex(2);
            var c = graph.CreateVertex(3);
            var d = graph.CreateVertex(4);
            var e = graph.CreateVertex(5);
            var f = graph.CreateVertex(6);
            var g = graph.CreateVertex(7);
            //var h = graph.CreateVertex(8);
            //var i = graph.CreateVertex(9);
            //var j = graph.CreateVertex(10);
            //var k = graph.CreateVertex(11);
            //var l = graph.CreateVertex(12);
            //var m = graph.CreateVertex(13);
            //var n = graph.CreateVertex(14);
            //var o = graph.CreateVertex(15);
            //var p = graph.CreateVertex(16);

            graph.InsertVertex(a);
            graph.InsertVertex(b);
            graph.InsertVertex(c);
            graph.InsertVertex(d);
            graph.InsertVertex(e);
            graph.InsertVertex(f);
            graph.InsertVertex(g);
            //graph.InsertVertex(h);
            //graph.InsertVertex(i);
            //graph.InsertVertex(j);
            //graph.InsertVertex(k);
            //graph.InsertVertex(l);
            //graph.InsertVertex(m);
            //graph.InsertVertex(n);
            //graph.InsertVertex(o);
            //graph.InsertVertex(p);

            //graph.LinkVertex(a, b);
            //graph.LinkVertex(a, c);

            //graph.LinkVertex(b, e);
            //graph.LinkVertex(b, d);

            //graph.LinkVertex(c, f);
            //graph.LinkVertex(c, d);

            //graph.LinkVertex(d, h);

            //graph.LinkVertex(e, g);
            //graph.LinkVertex(e, h);

            //graph.LinkVertex(f, h);
            //graph.LinkVertex(f, i);

            //graph.LinkVertex(g, j);
            //graph.LinkVertex(g, l);

            //graph.LinkVertex(h, j);
            //graph.LinkVertex(h, k);
            //graph.LinkVertex(h, m);

            //graph.LinkVertex(i, k);
            //graph.LinkVertex(i, n);

            //graph.LinkVertex(j, o);

            //graph.LinkVertex(k, p);

            //graph.LinkVertex(l, o);

            //graph.LinkVertex(m, o);
            //graph.LinkVertex(m, p);

            //graph.LinkVertex(n, p);

            graph.LinkVertex(a, b, 12);
            graph.LinkVertex(a, c, 10);

            graph.LinkVertex(b, c, 3);
            graph.LinkVertex(b, d, 9);
            graph.LinkVertex(b, e, 6);

            graph.LinkVertex(c, f, 20);

            graph.LinkVertex(d, e, 2);
            graph.LinkVertex(d, f, 4);

            graph.LinkVertex(e, g, 23);

            graph.LinkVertex(f, g, 14);

            var cost = graph.ShortestPath(a);
            //var edges = graph.findMinSpanningTree();
            var edges = graph.FindMinSpanTree();
            while (graph.ThrowGrenade())
            {
                Console.WriteLine("Throwing");
            }

            int steps = graph.Bfs(3);
            //Console.WriteLine(steps);
        }