예제 #1
0
        public void HaNoCycleTest()
        {
            var graph = new Digraph(13, 13, new[]
            {
                "0 5",
                "4 3",
                "0 1",
                "9 12",
                "6 4",
                "5 4",
                "0 2",
                "11 12",
                "9 10",
                "0 6",
                "7 8",
                "9 11",
                "5 3"
            });

            var directedCycle = new DirectedCycle(graph);

            Assert.AreEqual(false, directedCycle.HasCycle());

            var cycle = directedCycle.Cycle();
        }
예제 #2
0
        public void BreadthFirstDirectedPathsTest()
        {
            var graph = new Digraph(13, 22, new[]
            {
                "4 2",
                "2 3",
                "3 2",
                "6 0",
                "0 1",
                "2 0",
                "11 12",
                "12 9",
                "9 10",
                "9 11",
                "8 9",
                "10 12",
                "11 4",
                "4 3",
                "3 5",
                "7 8",
                "8 7",
                "5 4",
                "0 5",
                "6 4",
                "6 9",
                "7 6"
            });

            var path = new DirectedCycle(graph);

            Assert.AreEqual(true, path.HasCycle());

            var cycle = path.Cycle();
        }