-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathalgo.cl
75 lines (72 loc) · 2.06 KB
/
algo.cl
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
Algorithme ChainageAvant(bfInitiale br but chemin)
variable : retour retourTmp trouve regle bf
Debut
Si but validé dans bfInitiale
retourner vrai
Sinon
bf <- copie de bfInitiale
regle <- premier élément de br
Tant que non trouve et regle non vide faire
Si regle validé dans bf
Appliquer regle à bf
Ajouter règle à chemin
retourTmp <- ChainageAvant (bf br but chemin)
Si retourTmp non nul
trouve <- vrai
Si retourTmp est égal à vrai
retour <- chemin
Sinon
retour <- retourTmp
Fin si
Fin si
Fin si
Fin Tant que
Fin Si
Fin Algorithme
Algorithme ChainageArriereLargeur(bf br butInitial chemin)
variable : retour listeRegles but regles
Debut
Si butInitial validé dans bf
retourner vrai
Sinon
listeRegles <- reglesUtiles(butInitial br)
Tant que retour vide et listeRegles non vide faire
regles <- premier règle de listeRegles
retirer le premier élément de listeRegles
but <- copie de butInitial
Appliquer regles à but
Si but validé dans bf
retour <- regles
Sinon
Pour chaque regle dans reglesUtiles(but br) faire
Ajouter listeRegles (regles + regle)
Fin Pour
Fin Si
Fin Tant que
Fin Si
Fin Algorithme
Algorithme ChainageArriereProfondeur(bf br butInitial chemin)
variable : retour retourTmp trouve premisse but
Debut
Si butInitial validé dans bf
retourner vrai
Sinon
but <- copie de butInitial
premisse <- premier élément de butInitial
Tant que non trouve et premisse non vide faire
Pour chaque regle dans reglesUtiles(premisse br) faire
Appliquer regle à but
Ajouter règle à chemin
retourTmp <- ChainageArriere (bf br but chemin)
Si retourTmp non nul
trouve <- vrai
Si retourTmp est égal à vrai
retour <- chemin
Sinon
retour <- retourTmp
Fin si
Fin si
Fin Pour
Fin Tant que
Fin Si
Fin Algorithme