Algorithme - Suppression d'un élément dans une liste contiguë(tableau)

On a deux cas de suppression:

Suppression au début et au milieu:

Dans ce cas on a besoin de chercher la position de l'élément à supprimer. L'opération s'effectue en deux étapes:
  • Écraser l'élément à l'indice k en décalant tous les autres qui ont un indice supérieur.
  • Décrémenter la taille du tableau avec 1.

Suppression à la fin :

C'est un cas très simple, il suffit de décrémenter la taille du tableau avec 1.

L'algorithme qui réunit les deux cas :

Algorithme supprimer;
Var 
  i,k : entier;
  T[1..n] : entier;
Début
  pour i de k à n-1
  faire
    T[i] := T[i+1];
  finfaire
  n := n-1;
Fin

Procédure:

Procédure supprimer(L:liste,k:1..lmax)
var i,n:1..lmax;
Début
  n := L.longueur;
  pour i de k à n-1
  faire
    L.T[i] := L.T[i+1];
  finfaire
  L.longueur := n-1;
Fin




Voir aussi:

Algorithme | Insertion et suppression d'un élément dans une liste chaînée.
Algorithme | Listes contiguës et chaînées.
Algorithme | Insertion d'un élément dans une liste contiguë(tableau).
C/C++ | Suppression d'une valeur dans un tableau.