EDIT: Ich meine in Wirklichkeit DeleteElement!!!
*** Vorsicht beim Lesen ***
Wollte nur mal auf die ziemlich blöde Gestaltung von PreviousElement hinweisen.
Warum wird, wenn das aktuelle Element das Erste ist und PreviousElement() aufgerufen, wird eine Null zurückgegeben? Während sonst immer die Adresse zurückgegeben wird.
Das ist ein programmierter Sonderfall und letztlich eine nette (un)logische Falle.
Sinnvoll und richtig ist es: bei PreviousElement IMMER die Adresse zurückzuliefern und Null nur wenn keine Elemente existieren.
Wenn jmd auf dem ersten Element steht und PreviousElement(xy) aufruft, darf sich nichts ändern bzw. muß die Liste dieselbe Adresse liefern.
Wollte nur mal auf diesen unglücklichen Strukturfehler hinweisen!
Nicht sauer sein ... das übernehme ich schon

PS:
Wenn man übrigens ein Flag da einfügen will, wäre es bestenfalls sinnvoll mit einem PreviousElement(XY(), 1) vom ersten rückwärts auf das letzte Element zu springen. Dann kann man Schleifen laufen lassen.
Eine weiterer Wert könnte eine Schrittweite anzeigen.
Bsp: PrevElement(Liste(), 1, 3) läuft dann eine Endlosliste in Dreier-Schritten durch ...