Example #1
0
        public static void TestDirectInputTopologicalSort1()
        {
            var a = new Item("A");
            var c = new Item("C");
            var f = new Item("F");
            var h = new Item("H");
            var d = new Item("D", a);
            var g = new Item("G", f, h);
            var e = new Item("E", d, g);
            var b = new Item("B", c, e);

            //var unsorted = new[] { a, b, c, d, e, f, g, h };
            var unsorted = new[] { a, c, f, h, d, g, e, b }; // to fit to topSort.txt file content
            var topSort  = new TopologicalSort <Item>(unsorted);

            Console.WriteLine(String.Join(",", topSort.sorted.Select(x => x.Name)));
            Console.WriteLine();
        }
Example #2
0
        public static void TestDirectInputTopologicalSort2()
        {
            var a = new Item("A");
            var c = new Item("C");
            var f = new Item("F");
            var h = new Item("H");
            //d - a
            var d = new Item("D", new Item("A"));
            //g - [f, h]
            var g = new Item("G", new Item("F"), new Item("H"));
            //e - [d[a]], [g[f,h]]
            var e = new Item("E", new Item("D", new Item("A")), new Item("G", new Item("F"), new Item("H")));
            //b -[c, e[d[a]], g[f,h]]
            var b = new Item("B", new Item("C"), new Item("E", new Item("D", new Item("A")), new Item("G", new Item("F"), new Item("H"))));

            var unsorted = new[] { a, c, f, h, d, g, e, b }; // to fit to topSort.txt file content
            var topSort  = new TopologicalSort <Item>(unsorted, new ItemEqualityComparer());

            Console.WriteLine(String.Join(",", topSort.sorted.Select(x => x.Name)));
            Console.WriteLine();
        }