public static void calculchemin(Node source)
    {
        source.minDistance = 0.0;
        Chaine file = new Chaine();
      	file.push(source);
	
        while (!file.isEmpty()) {
	    Node u = file.pop();            
            file.print();
            
            for (Edge e : u.lien)
            {
                Node v = e.cible;
                double poid = e.poid;
                double distanceTotal = u.minDistance + poid;
                
		if (distanceTotal < v.minDistance) {
		    file.remove(v);
		    v.minDistance = distanceTotal ;
		    v.previous = u;
		    file.push(v);
		}
            }
        }
    }