Bonjour a tous,
J'ai un exercice a faire et je doute de ma solution. Voici mon sujet:
Terminez l’algorithme suivant, qui permet de supprimer un élément de TabElem, cet élément
étant saisi, en supprimant également son indice dans TabIndex.
Attention : la suppression d’un élément dans TabElem entraîne la modification des indices
d’un certain nombre d’éléments de TabElem. Cette modification doit être répercutée dans
TabIndex. (3 points)J'ai rajouté ceci qu'en pensez vous et voyez vous une optimisation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Saisir (elem) // recherche de l'indice de elem dans TabElem i ← 1 TantQue elem <> TabElem[i] et i < NbElem Faire i ← i + 1 FinTantQue // i contient l'indice d'elem // On suprime elem dans TabElem Pour j de i à NbElem Faire TabElem[j] ← TabElem[j + 1] // modification des indices dans TabIndex t ← 1 TantQue TabIndex[t] <> j+1 Faire t ← t + 1 FinTantQue TabIndex[t] ← j FinPour // On cherche et on supprime l'indice d'elem // dans tabIndex
Avec tous mes remerciements.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 a ← 1 b←1 // Je suis obligé de créer a car lors sinon a la prochaine question lalgo serait faux TantQue tabIndex [a] <>i Faire a← a+1 FinTantQue //a contient lindice de i dans tabindex il nous faut maintenant décaler les éléments avec un pour Pour b de a à NbElem Faire TabIndex[b] ← TabIndex[b + 1] Finpour Fin
Partager