![]() |
Sortieren einer Liste?
Hi Leute, ich will eine einfach verkettete Liste nach Namen sortieren.
Aber wo liegt der Fehler???
Delphi-Quellcode:
Die Liste ist später durcheinander.
procedure TForm1.SortList();
var Nav, Help: PZeiger; begin Nav := Root; while Nav^.Next <> nil do begin if Nav^.Name > Nav^.Next^.Name then begin Help := Nav; Nav := Nav^.Next; Nav^.Next := Help; end; Nav := Nav^.Next; end; end; Kann mir jemand helfen? Danke... |
Re: Sortieren einer Liste?
der Sortieralgorithmus ist unvollständig. Wenn mich nicht alles täuscht fehlt die zweite Schleife.
phoenix |
Re: Sortieren einer Liste?
Zweite Schleife??? Soweit ich mich erinnere geht es auch mit einer.
Könntest du mir helfen? |
Re: Sortieren einer Liste?
Delphi-Quellcode:
so müsste es funktionieren. Nennt sich Bubblesort.
procedure TForm1.SortList();
var Nav, Help: PZeiger; veraendert: boolean; begin repeat veraendert := false; Nav := Root; while Nav^.Next <> nil do begin if Nav^.Name > Nav^.Next^.Name then begin Help := Nav; Nav := Nav^.Next; Nav^.Next := Help; veraendert := true; end; Nav := Nav^.Next; end; until not veraendert; end; siehe auch: ![]() phoenix |
Re: Sortieren einer Liste?
Das sieht schon ma gut aus!
Werds ma probieren, ich danke dir! :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz