Algorithme - Insertion d'un élément dans une liste contiguë

Wie beim Löschen haben wir beim Einfügen zwei Fälle:

Einfügen am Anfang und in der Mitte:

In diesem Fall müssen wir nach der Position des einzufügenden Elements suchen. Die Operation wird in zwei Schritten ausgeführt:
  • Erhöhen Sie die Größe des Arrays mit 1.
  • Verschieben Sie alle Elemente von n nach k und fügen Sie das Element dann an der Position k.

Am Ende einfügen:

Dies ist ein sehr einfacher Fall, da der Offset nicht ausgeführt wird.

Der Algorithmus, der die beiden Fälle kombiniert:

Algorithmus einfügen;
Var 
  i,k,x: ganzzahlig;
  T[1..n]: ganzzahlig;
Start
  lesen;
  n:=n+1;
  für i von n nach k not-1
  faire
    T[i+1] := T[i];
  finfaire
      T[k] := x;
End

Prozedur:

Prozedur insert(L:list,k:1..lmax, x:element)
var i,n:1..lmax;
Start
  n := L.Länge;
  L.Length:= n+1;
  für i von n nach k not-1
  faire
    L.T[i+1] := L.T[i];
  finfaire
  L.T[i] := x;
Ende