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

Wir haben zwei Löschfälle:

Am Anfang und in der Mitte löschen:

In diesem Fall müssen wir nach der Position des zu löschenden Elements suchen. Die Operation wird in zwei Schritten ausgeführt:
  • Crush" Das Element hat den k-Index, indem alle anderen Elemente verschoben werden, die einen Index haben  superior.
  • Verringern Sie die Größe des Arrays mit 1.

Am Ende löschen:

Dies ist ein sehr einfacher Fall, verringern Sie einfach die Größe des Arrays mit 1.

Der Algorithmus, der die beiden Fälle kombiniert:

Algorithmus löschen;
Var 
  i,k : ganzzahlig;
  T[1..n]: ganzzahlig;
Start
  für i von k bis n-1
  faire
    T[i] := T[i+1];
  finfaire
  n := n-1;
End

Prozedur:

Prozedur delete(L:list,k:1..lmax)
var i,n:1..lmax;
Start
  n := L.Länge;
  für i von k bis n-1
  faire
    L.T[i] := L.T[i+1];
  finfaire
  L.Länge:= n-1;
Fin




Siehe auch:

Algorithmus |  Einfügen und Löschen eines Elements in einer verknüpften Liste.
Algorithmus |  Zusammenhängende und verkettete Listen.
Algorithmus |  Einfügen eines Elements in eine zusammenhängende Liste (array).
C/C++ |  Löschen eines Werts aus einem Array.