public OrderDirectedDFS(Digraph G)
	{
		marked = new boolean[G.V()];
		reversePostOrder = new LinkedList<Integer>();
		postOrder = new LinkedList<Integer>();
		preOrder = new LinkedList<Integer>();
		for (int v = 0; v < G.V(); v++)
			if (!marked[v])
				dfs(G, v);
	}