public void dfs(Graph G, int v)
	{
		marked[v] = true;
		preAnyAdjacentVerticesVisit(G, v);
		
		for (int w : G.adj(v))
			if (!marked[w])
			{
				preAdjacentVertexVisit(v, w);
				dfs(G, w);
				postAdjacentVertexVisit(v, w);	
			}
	}