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:
Prozedur:
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 |