-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcami_1.java
More file actions
56 lines (38 loc) · 1.79 KB
/
cami_1.java
File metadata and controls
56 lines (38 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Atributs:
private final int o; //origen
private final int d; //desti
private final int MAX_NUM; //nombre maxim representable
private final Mapa graf;
private boolean visitats[]; //Taula de llocs visitats
private float temps[]; //Taula de temps
public Circuit camiMesCurt(){
//Inicialitzacio taula de temps
int act = o;
for (int i = 1;i< temps.length;i++){
temps[i] = MAX_NUM;
}
temps[act] = 0;
//Inicialitzacio taula de visitats
for (int i = 0;i< visitats.length;i++){
visitats[i] = false;
}
int tractats = 0;
while (tractats < graf.nLlocs()){ //Retorna el nombre de Llocs(vertexs) de Mapa
visitats[act] = true; //marcar actual com a visitat
PairIdT [] veins = graf.adjacents(act); //Retorna una array de PairIdT
int iAdj = 0;
while (iAdj < veins.length){ //tractar tots els veins
int adjV = veins[iAdj].getId(); //Retorna l'identificador numeric de lloc (PairID)
float adjTA = temps[adjV];
float nouTemp = temps[act]+ veins[iAdj].getT();//Retrorna el temps(PairID)
if (nouTemp < adjTA)
temps[adjV] = nouTemp;
iAdj++;
}
act = triarMillor(); //Retorna vertex amb el temps mes petit (CalculadorRutes)
tractats++;
Circuit camiMinim = obtenirCircuit(); // Retorna el cami d'origen a desti (CalculadorRutes)
return camiMinim;
}
PairID:
classe formada per l'identificador numeric d'un Lloc i el temps a un lloc donat, estructura semblant a tupla.