Label v0.7

This commit is contained in:
Favary Pierre 2021-04-12 11:27:03 +02:00
parent bcdae535bf
commit 83faf7dd11

View file

@ -5,13 +5,18 @@ import org.insa.graphs.model.Node;
public class Label { public class Label {
//comment avoir le nombre de nodes dans le graph? (pour lier un unique label à chaque node)
private Label[] tablabel=new Label[50000000];//5000000 placeholder
//quelles valeurs de protection?
protected Node sommet_courant; protected Node sommet_courant;
//vrai quand cout_min définitivement connu par l'algo //vrai quand cout_min définitivement connu par l'algo
public boolean marque; public boolean marque;
//valeur courante du plus court chemin, de l'origine au sommet //valeur courante du plus court chemin, de l'origine au sommet
private int cout; protected int cout;
//arc (permettant d'avoir le sommet) précédent sur le plus court chemin courant //arc (permettant d'avoir le sommet) précédent sur le plus court chemin courant
protected Arc pere; protected Arc pere;
@ -19,17 +24,27 @@ public class Label {
//constructeur //constructeur
public Label(Node sommet,Arc padre, int prix) { public Label(Node sommet,Arc padre, int prix) {
this.sommet_courant=sommet; if (tablabel[sommet.getId()]==null)
this.sommet_courant=sommet;
this.pere=padre; this.pere=padre;
this.cout=prix; this.cout=prix;
this.marque=false;//!\\ pas sûr que ce soit une bonne idée this.marque=false;//!\\ pas sûr que ce soit une bonne idée
tablabel[sommet.getId()]=this;
} }
//la condition tablabel==null est un placeholder /!\
public Label(Node sommet,Arc padre, int prix, boolean mark) { public Label(Node sommet,Arc padre, int prix, boolean mark) {
this.sommet_courant=sommet; if (tablabel[sommet.getId()]==null)
this.sommet_courant=sommet;
this.pere=padre; this.pere=padre;
this.cout=prix; this.cout=prix;
this.marque=mark; this.marque=mark;
tablabel[sommet.getId()]=this;
}
public Label getLabel(Node unnode) {
return tablabel[unnode.getId()];
} }
public int getCost() { public int getCost() {