![]() |
verkettete listen erstellen
Hallo Leute,
ich kenn mich leider nur mit TP aus und wollt nun mal fragen wie ich eine verkettete Liste in Delphi erstellen kann. Vielen Dank im Voraus :wiejetzt: |
Re: verkettete listen erstellen
HI
Herzlich Willkommen in der DP! :-D Was genau meinst du mit verkettete Listen? :gruebel: Mach mal ein Beispiel. |
Re: verkettete listen erstellen
hallo Krebs27,
das sollte genauso gehen, Pointer hast du unter Delphi wie du sie von TP kennst. Roderich |
Re: verkettete listen erstellen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
sieh dir mal dieses Programm an. Das ist ein Beispiel, das ich für eine Delphischulung programmiert habe, die ich vor einem Jahr gehalten habe. Es handelt sich um eine doppelt verkettete Liste. Sieh dir den Quelltext mal an. Wenn du Fragen dazu hast, kannst du sie gerne stellen. Ich werde dann versuchen, sie zu beantworten. |
Re: verkettete listen erstellen
Hallo,
ich muste im Informatik LK auch schonmal verkette Listen programmieren. Auf meiner Homepage findest du ein Test Programm, dass dir bestimmt etwas weiterhilft: ![]() Salomon |
Re: verkettete listen erstellen
Hi,
wenn Du die Liste nicht explizit selbst programmieren musst, kannst du evtl einen fertigen Datentyp nehmen. z.B. TList. für Strings kannst du beispielsweise TStringlist benutzen. Die ist fix und fertig implementiert. :zwinker: Gruß manuel |
Re: verkettete listen erstellen
wenn mich nicht alles täuscht, sind verkette listen nichts anderes als arrays
in delphi gehts damit ein bisschen einfacher:
Delphi-Quellcode:
falls es sich in der Aufgabe darum handelt, eine verkette liste zu programmieren, kannste das logisch nicht nehmen.
var
Liste: array of MeinTyp; ... setLength(Liste, 1); //setzt dann die länge des Arrays ... da gibts aber dann noch was lustiges: anstatt dem ganzen:
Delphi-Quellcode:
kannste nehmen:
type
PMeinTyp = ^TMeinTyp; TMeinTyp = record Item: integer; Next: PMeinTyp; end; var First: PMeinTyp; ... new(First); //oder so, weiß es nicht mehr genau... ...
Delphi-Quellcode:
falls das noch gilt, is nämlich schon (fast) ein array
var
First: ^Integer; ItemCount: integer; GesuchtesElement: ^Integer; ... //beim 1. mal: First := allocMem(0); ItemCount := 0; //danach: inc(ItemCount); //oder dec(ItemCount), fallses eins weniger werden sollte... reallocMem(First, ItemCount * sizeOf(integer)); //und der zugriff is ganz toll: (mit einer function) function Element(Index: integer): Pointer; asm push esi push eax mov esi, First mov eax, Index imul eax, sizeof(Integer) add esi, eax mov GesuchtesElement, eax pop eax pop esi end; ... |
Re: verkettete listen erstellen
@Skiron:
Ersters ist eine verkettete Liste, zweiteres aber ein dynamisches Array. Warum du die Zugriffsfunktion in Assembler geschrieben hast, ist mir aber ein Rätsel :gruebel: |
Re: verkettete listen erstellen
@Chewie: die Zugriffsprozedur deshalb in assembler, da bei mir die addition von Pointer und integer nicht so ganz geklappt hätte...
|
Re: verkettete listen erstellen
Eine Frage hätte ich da noch und zwar ob man die Elemente dieser Kette mit Bmp´s füllen kann und falls ja wie man das macht. Konkret geht es darum dass ich als info projekt snake programmiere und ich mir gedacht habe das man dies am besten als schlange macht. nun wollte ich nun gerne die Elemente dieser schlange mit bmp's füllen. Vielen dank auch für die anderen antworten.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 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