public Iterable<WeightedDirectedEdge> edges()
	{
		List<WeightedDirectedEdge> b = new LinkedList<WeightedDirectedEdge>();
		for (int v = 0; v < V; v++)
			for (WeightedDirectedEdge e : adj[v])
				b.add(e);
		return b;
	}