Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Doppeltverkettete Liste element löschen.
asbito - Mo 27.10.08 18:14
Titel: Doppeltverkettete Liste element löschen.
HI @all
Ich hab ein kleines problem ich soll nen programm schreiben das mit na doppelt verketetten Liste funktioniert.
Jetzt ist das problem, das ich quasi das aktuelle element geslöscht werden soll.
Aber ich weiss net wie ich das machen soll.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79:
| type tInhalt=String[50]; tzeiger= ^tknoten; tknoten = record Inhalt : tInhalt; zNach : tZeiger; zVor : tZeiger; end;
Var zKopf : tZeiger; zAktuell: tZeiger; {$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin zKopf := NIL; zAktuell := NIL; end;
procedure TForm1.Button1Click(Sender: TObject); var zNeu,zAlt,zHilf: tZeiger; begin new(zNeu); zNeu^.Inhalt:=InputBox('Hinzufügen','Hinzufügen',''); zNeu^.zNach := NIL; if zKopf = NIL then begin zKopf := zNeu; zKopf^.zVor := NIL; zAktuell := zKopf; end else begin new(zHilf); zHilf := zAktuell; zAktuell^.zNach := zNeu; zAktuell := zNeu; zAktuell^.zVor := zHilf;
end;
Edit1.Text := zAktuell.Inhalt;
end;
procedure TForm1.Button3Click(Sender: TObject); var zhilf : tzeiger; begin new(zHilf); zHilf := zAktuell; if zAktuell^.zVor <> NIL then begin Edit1.Text := zAktuell^.zVor.Inhalt; zAktuell:= zHilf^.zVor; end else Showmessage('Ende der Liste'); end;
procedure TForm1.Button2Click(Sender: TObject); var zHilf: tZeiger; begin new(zHilf); zHilf := zAktuell; if zAktuell^.zNach <> NIL then begin Edit1.Text := zaktuell^.zNach.Inhalt; zAktuell := zHilf^.zNach; end else ShowMessage('Ende der Liste'); end;
procedure TForm1.Button4Click(Sender: TObject); Var zHilf: tzeiger; begin new(zHilf); zHilf := zAktuell.zNach; zAktuell^.zVor := zHilf; dispose(zAktuell); end; |
bei button 4 hab ich das lösch problem.
helft mir ma bitte.
lg asbito.
p.s. hab ma meinen namen in den quelltext gesetzt nicht das meine lehrerin das sieht und sagt das is nicht von mir ^^.
Xabitire - Mo 27.10.08 18:32
So sollte es eigenlich funktionieren: (ungetestet)
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.Button4Click(Sender: TObject); begin zAktuell.zNach^.zVor := zAktuell.zVor; zAktuell.zVor^.zNach := zAktuell.zNach; dispose(zAktuell); end; |
Dann brauchst du auch kein zHilf! :wink:
MFG Blackbird8690
Delete - Mo 27.10.08 18:43
Aber in beiden Fällen vorher auf nil prüfen.
asbito - Mo 27.10.08 19:12
heee danke.
hat gut funktioniert.
llg asbito.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!