private void relax(EdgeWeightedDigraph G, Vertex v)
	{
		for (WeightedDirectedEdge e : G.adj(v.label))
		{
			Vertex w = vertex[e.to()];
			if (w.distTo > v.distTo + e.weight())
			{
				w.distTo = v.distTo + e.weight();
				w.edgeTo = e;
				if (!w.onQ)
				{
					queue.addFirst(w);
					w.onQ = true;
				}
			}
		}
	}