label: ajout setteurs et de compareTo

This commit is contained in:
bezza 2025-05-09 10:33:23 +02:00
parent e93202c4df
commit 5c265182ed
2 changed files with 44 additions and 8 deletions

View file

@ -43,7 +43,7 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
Node nodeOriginel=data.getOrigin(); Node nodeOriginel=data.getOrigin();
Node nodeDestination=data.getDestination(); Node nodeDestination=data.getDestination();
BinaryHeap<Node> leTas=new BinaryHeap<Node>; BinaryHeap<Arc> leTas=new BinaryHeap<Arc>;
List<Arc> listeSuccesseurs; List<Arc> listeSuccesseurs;
@ -55,18 +55,19 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
System.out.println("Le node originel n'a pas de successeurs \n"); System.out.println("Le node originel n'a pas de successeurs \n");
} }
//les mettre ds le tas (les destinations de l'arc pas les arcs en eux-mêmes) //les mettre ds le tas
for(Arc arcActuel : listeSuccesseurs){ for(Arc arcActuel : listeSuccesseurs){
leTas.insert(arcActuel.getDestination()); leTas.insert(arcActuel);
} }
// when the algorithm terminates, return the solution that has been found // when the algorithm terminates, return the solution that has been found
return solution; return solution;
} }

View file

@ -1,8 +1,9 @@
package org.insa.graphs.algorithm.shortestpath; package org.insa.graphs.algorithm.shortestpath;
import org.insa.graphs.model.Arc;// sinon cela compilait pas import org.insa.graphs.model.Arc;// sinon cela compilait pas
import org.insa.graphs.model.Node;
public class Label { public class Label implements Comparable {
/* sommet courant : sommet associé à ce label (sommet ou numéro de sommet). /* sommet courant : sommet associé à ce label (sommet ou numéro de sommet).
marque : booléen, vrai lorsque le coût min de ce sommet est définitivement connu par l'algorithme. marque : booléen, vrai lorsque le coût min de ce sommet est définitivement connu par l'algorithme.
@ -11,18 +12,18 @@ père : correspond au sommet précédent sur le chemin correspondant au plus cou
Ajoutez les getters. Ajoutez les getters.
Important pour la suite : une méthode getCost() qui renvoie le coût de ce label. Pour le moment, le coût est égal au coût réalisé. Important pour la suite : une méthode getCost() qui renvoie le coût de ce label. Pour le moment, le coût est égal au coût réalisé.
*/ */
private int sommetCourant; private Node sommetCourant;
private Boolean marque; private Boolean marque;
private double coutRealise; private double coutRealise;
private Arc pere; private Arc pere;
public Label(int sommetCourant,Boolean marque,double coutRealise, Arc pere){ public Label(Node sommetCourant,Boolean marque,double coutRealise, Arc pere){
this.sommetCourant=sommetCourant; this.sommetCourant=sommetCourant;
this.marque=marque; this.marque=marque;
this.coutRealise=coutRealise; this.coutRealise=coutRealise;
this.pere=pere; this.pere=pere;
} }
public int getSommetCourant() { public Node getSommetCourant() {
return sommetCourant; return sommetCourant;
} }
@ -37,5 +38,39 @@ private Arc pere;
public double getCost(){ public double getCost(){
return coutRealise; return coutRealise;
} }
//renvoit 0 si égal sinon renvoit la différence.
public int compareTo(Label L){
int retour;
if (coutRealise==L.getCoutRealise()){
retour=0;
}else {
retour=(int)(coutRealise-L.getCoutRealise());
}
return retour;
}
public void setSommetCourant(Node sommetCourant) {
this.sommetCourant = sommetCourant;
}
public void setMarque(Boolean marque) {
this.marque = marque;
}
public void setCoutRealise(double coutRealise) {
this.coutRealise = coutRealise;
}
public void setPere(Arc pere) {
this.pere = pere;
}
@Override
public int compareTo(Object arg0) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'compareTo'");
}
} }