Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Exercice Algo

Posté par
seb1201
12-06-09 à 12:30

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.

Posté par
Daniel62
re : Exercice Algo 12-06-09 à 19:47

Bonsoir,

il ne suffit pas de décaler il faut aussi changer les indices:

si Tabindex[b] > i alors Tabindex[b] ← Tabindex[b] - 1

ne pas oublier de faire NbElem - 1 à la fin

et de prendre en compte que elem n'est pas forcémént dans la Table

Répondre à ce sujet

Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster :

Connexion / Inscription Poster un nouveau sujet
Une question ?
Besoin d'aide ?
(Gratuit)
Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.


Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !