Browse Source

Label v0.7

Favary Pierre 3 years ago
parent
commit
83faf7dd11

+ 18
- 3
be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/Label.java View File

5
 
5
 
6
 public class Label {
6
 public class Label {
7
 	
7
 	
8
+	//comment avoir le nombre de nodes dans le graph? (pour lier un unique label à chaque node)
9
+	private Label[] tablabel=new Label[50000000];//5000000 placeholder
10
+	
11
+		
12
+	//quelles valeurs de protection?
8
 	protected Node sommet_courant;
13
 	protected Node sommet_courant;
9
 	
14
 	
10
 	//vrai quand cout_min définitivement connu par l'algo
15
 	//vrai quand cout_min définitivement connu par l'algo
11
 	public boolean marque;
16
 	public boolean marque;
12
 	
17
 	
13
 	//valeur courante du plus court chemin, de l'origine au sommet
18
 	//valeur courante du plus court chemin, de l'origine au sommet
14
-	private int cout;
19
+	protected int cout;
15
 	
20
 	
16
 	//arc (permettant d'avoir le sommet) précédent sur le plus court chemin courant
21
 	//arc (permettant d'avoir le sommet) précédent sur le plus court chemin courant
17
 	protected Arc pere;
22
 	protected Arc pere;
19
 	
24
 	
20
 	//constructeur
25
 	//constructeur
21
 	public Label(Node sommet,Arc padre, int prix) {
26
 	public Label(Node sommet,Arc padre, int prix) {
22
-		this.sommet_courant=sommet;
27
+		if (tablabel[sommet.getId()]==null)
28
+			this.sommet_courant=sommet;
23
 		this.pere=padre;
29
 		this.pere=padre;
24
 		this.cout=prix;
30
 		this.cout=prix;
25
 		this.marque=false;//!\\ pas sûr que ce soit une bonne idée
31
 		this.marque=false;//!\\ pas sûr que ce soit une bonne idée
32
+		tablabel[sommet.getId()]=this;		
26
 	}
33
 	}
27
 	
34
 	
35
+	//la condition tablabel==null est un placeholder /!\
28
 	public Label(Node sommet,Arc padre, int prix, boolean mark) {
36
 	public Label(Node sommet,Arc padre, int prix, boolean mark) {
29
-		this.sommet_courant=sommet;
37
+		if (tablabel[sommet.getId()]==null)
38
+			this.sommet_courant=sommet;
30
 		this.pere=padre;
39
 		this.pere=padre;
31
 		this.cout=prix;
40
 		this.cout=prix;
32
 		this.marque=mark;
41
 		this.marque=mark;
42
+		tablabel[sommet.getId()]=this;
43
+		
44
+	}
45
+	
46
+	public Label getLabel(Node unnode) {
47
+		return tablabel[unnode.getId()];
33
 	}
48
 	}
34
 	
49
 	
35
 	public int getCost() {
50
 	public int getCost() {

Loading…
Cancel
Save