Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem: Verkettete Liste Element Move Up (https://www.delphipraxis.net/94387-problem-verkettete-liste-element-move-up.html)

Stillmatic 20. Jun 2007 20:01


Problem: Verkettete Liste Element Move Up
 
Hallo!

Ich habe ein Problem mit der umsetzung eines MoveUp Buttons!
Ich möchte ein makiertes Element aus meiner Liste auf Knopfdruck eine Position nach oben verschieben!

Wie könnte man das am besten machen??

Mann muss sich ja irgendwie die Elemente merken die vor dem Element liegen, ohne das Element mit zu speichern welches bei ^.next das zu verschiebende Element aufweißt!

Es sind ja so gesehen auch 2 Elemente die verschoben werden müssen also muss man die sich auch merken!

Ist das soweit richtig, oder gibt es eine einfachere Lösung??

hirnstroem 21. Jun 2007 06:55

Re: Problem: Verkettete Liste Element Move Up
 
Ich hoffe dich nicht gänzlich falsch verstanden zu haben, aber es ginge noch wesentlich einfacher.

Die Move Methode bietet die von dir gewünschte Funktionalität.

Damit kann ein Element von der aktuellen Position auf eine andere verschoben werden indem der Index des Elementes ausgelesen und dieser dann in- beziehungsweise dekrementiert (oder was auch immer) und als neuer Index angegeben wird.

Nikolas 21. Jun 2007 06:58

Re: Problem: Verkettete Liste Element Move Up
 
Ist das eine InfoAufgabe, musst du die Funktion also selbst schreiben? Ist die Liste doppelt oder einfach verkettet?

Stillmatic 21. Jun 2007 11:26

Re: Problem: Verkettete Liste Element Move Up
 
Klar muss ich die Funktion selbst schreiben und ja es ist eine einfach verkettete Liste!!

@hirnstrom Könntest du das etwas genauer erleutern??
Ich kenne keine Funktion move!

Stillmatic 23. Jun 2007 14:50

Re: Problem: Verkettete Liste Element Move Up
 
Ich denke die Funktion move gibt es für die Listbox aber nicht für selbst erstellte Listen Strukturen!!
Kann mir den keiner helfen??

DGL-luke 23. Jun 2007 14:53

Re: Problem: Verkettete Liste Element Move Up
 
naja, is ja ganz einfach ^^

du hast bei jedem listenelement einen next-pointer.

also:

A.next = B
B.next = C
C.next = D

und wenn du nun C eins nach oben schieben willst, muss es so aussehen:

A.next = C
C.next = B
B.next = D

du musst also nur ein bisschen mit den next-pointern spielen. Wie genau, das findest du sicher schnell selber raus.

Nikolas 23. Jun 2007 15:12

Re: Problem: Verkettete Liste Element Move Up
 
Und wie kommst du an A? (ausser in O(n))


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz