Bonjour a tous,
J'ai un exercice a faire et je doute de ma solution. Voici mon sujet:
Citation:
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)
Code :
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
J'ai rajouté ceci qu'en pensez vous et voyez vous une optimisation:
Code :
a ← 1
b←1
// Je suis obligé de créer a car lors sinon a la prochaine question l'algo serait faux
TantQue tabIndex [a] <>i
Faire a← a+1
FinTantQue
//a contient l'indice 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
Avec tous mes remerciements.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :