Hallo,
ich wüsste nciht, was an Verketteten Listen auszusetzen ist.
@Alishaa: Da du "doppelte Buchführung" machst (in der Liste und der ListBox) außerdem musst du dir überlegen, was bei mehrfachen auftauchen einer Nummer geschieht. Sollen alle auftauchenden Elemente gelöscht werden oder nicht?
Auf jeden Fall musst du bei der ListBox einfach mit einer Schleife durchgehen und etweder das erste oder jedes Vorkommen der Zahl löschen.
Ber der Verketteten Liste ist es nur in sofern schwieriger, als dass du dir auch das vorhergehende Element merken musst.
Hier eine Variante, die jedes vorkommen löschen sollte, wenn du es in dein Objekt (tForm1) integrierst kannst du den ersten Parameter weg lassen:
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:
| procedure DeleteAllOfNumber(root : pDaten; aNumber : Integer); var runner, last, ToDel : pDaten; begin runner := root; last := root; while (runner <> nil) do begin if (runner^.Zahl = aNumber) then begin ToDel := runner; if (runner = root) then begin root := root^.Next; last := root; end; else last^.Next := runner^.Next; runner := runner^.Next; Dispose(ToDel); end else begin last := runner; runner := runner^.Next; end; end; end; |
Das ganze habe ich im Beitragseditor getippt daher bitte ich eventuelle Fehler zu entschuldiegen, das Prinzieb sollte aber stimmen

.
Hast du für die Sortierung einen bevorzugten Algorithmus? Ansonsten suche mal nach
BUBBLESORT und versuche das auf eine Verkettete Liste um zu setzen. Wenn du dazu Fragen hast, kannst du dich ja wieder melden.
Gruß
Klabautermann