public void dagDistances(Graph g, Vertex start) {
		List<Vertex> vertexList = g.vertices();
		for (Vertex v : vertexList)
			if (v.equals(start))
				v.setDistance(0);
			else
				v.setDistance(Integer.MAX_VALUE);

		Vertex[] sortedVertices = topologicalDFS(g);

		for (Vertex u : sortedVertices) {
			List<EdgeListObject> outEdges = u.getOutEdges();
			if (outEdges != null) {
				for (EdgeListObject elo : outEdges) {
					Vertex z = g.opposite(u, elo.getEdge());
					int r = u.getDistance() + elo.getEdge().getWeight();
					if (r < z.getDistance()) {
						z.setDistance(r);
						z.setParent(elo.getEdge());// To Track Shortest Path
					}
				}
			}
		}
	}