warum so umständlich?
machs rekursiv
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure tliste.loeschen(var list:zeiger); var tmp:zeiger; begin
if(list<>nil) then begin if(list^.z=suchzahl) then begin tmp:=list; list:=list^.next; dispose(tmp); end else loeschen(list^.next); end;
end; |
bei listen geht das bearbeiten rekursiv immer besser, weil eine liste rekursiv definiert ist.
ansonsten doppelt verkettete liste nehmen oder viel aufwand mit temporären variablem machen.
BTW:
du solltest deine typ-namen besser wählen:
Delphi-Quelltext
1: 2: 3: 4: 5:
| pZeiger=^Telement; Telement=record z:integer; next:pZeiger; end |
alle typen mit großem T vorne versehen und pointer mit kleinem p vorne (nur ein auszug aus der namensgebung)
sonst passiert es schnell, dass du eine variable "element" nennst...