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()); }