Esempio n. 1
0
        static void Main(string[] args)
        {
            graph     g     = new graph();
            graphnode node5 = new graphnode(5);
            graphnode node4 = new graphnode(4);
            graphnode node2 = new graphnode(2);
            graphnode node0 = new graphnode(0);
            graphnode node1 = new graphnode(1);
            graphnode node3 = new graphnode(3);

            g.graphnodelist = new List <graphnode>
            {
                node5,
                node4,
                node2,
                node0,
                node1,
                node3
            };

            g.addDirectedEdge(node5, node2);
            g.addDirectedEdge(node5, node0);
            g.addDirectedEdge(node4, node0);
            g.addDirectedEdge(node4, node1);
            g.addDirectedEdge(node2, node3);
            g.addDirectedEdge(node3, node1);

            bool res = FindPathBetweenTwoGraphNode(node5, node1);

            graph.resetGraphnodevistedboolean(g);
            bool res2 = FindPathBetweenTwoGraphNode(node2, node1);

            graph.resetGraphnodevistedboolean(g);
            bool res3 = FindPathBetweenTwoGraphNode(node5, node4);
        }
        static void Main(string[] args)
        {
            graph     g     = new graph();
            graphnode node5 = new graphnode(5);
            graphnode node4 = new graphnode(4);
            graphnode node2 = new graphnode(2);
            graphnode node0 = new graphnode(0);
            graphnode node1 = new graphnode(1);
            graphnode node3 = new graphnode(3);

            g.graphnodelist = new List <graphnode>
            {
                node5,
                node4,
                node2,
                node0,
                node1,
                node3
            };

            g.addDirectedEdge(node5, node2);
            g.addDirectedEdge(node5, node0);
            g.addDirectedEdge(node4, node0);
            g.addDirectedEdge(node4, node1);
            g.addDirectedEdge(node2, node3);
            g.addDirectedEdge(node3, node1);

            Stack <int> s = new Stack <int>();

            topologicalSort(g, ref s);

            Console.WriteLine(s.ToList());
        }