AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

verkettete listen erstellen

Ein Thema von kriebs27 · begonnen am 24. Feb 2004 · letzter Beitrag vom 26. Feb 2004
Antwort Antwort
Seite 1 von 2  1 2      
kriebs27

Registriert seit: 2. Dez 2003
Ort: Potsdam
6 Beiträge
 
#1

verkettete listen erstellen

  Alt 24. Feb 2004, 11:34
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
  Mit Zitat antworten Zitat
Michael Leyhe

Registriert seit: 1. Dez 2003
Ort: Sprockhövel
101 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: verkettete listen erstellen

  Alt 24. Feb 2004, 11:39
HI

Herzlich Willkommen in der DP!

Was genau meinst du mit verkettete Listen?

Mach mal ein Beispiel.
Michael
Wer weis vll. ist das Leben ja ein Integer, wenn man negativ genug denkt wird es irgendwann positiv.
  Mit Zitat antworten Zitat
roderich
(Gast)

n/a Beiträge
 
#3

Re: verkettete listen erstellen

  Alt 24. Feb 2004, 11:40
hallo Krebs27,

das sollte genauso gehen, Pointer hast du unter Delphi wie du sie von TP kennst.

Roderich
  Mit Zitat antworten Zitat
Cuchulainn

Registriert seit: 26. Aug 2003
182 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: verkettete listen erstellen

  Alt 24. Feb 2004, 11:43
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.
Angehängte Dateien
Dateityp: zip beispiel15.zip (167,2 KB, 58x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#5

Re: verkettete listen erstellen

  Alt 24. Feb 2004, 12:07
Hallo,
ich muste im Informatik LK auch schonmal verkette Listen programmieren. Auf meiner Homepage findest du ein Test Programm, dass dir bestimmt etwas weiterhilft:
Dynamische Listen Struktur

Salomon
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
manuel

Registriert seit: 17. Sep 2003
Ort: MainBootRecord
72 Beiträge
 
Delphi 4 Client/Server
 
#6

Re: verkettete listen erstellen

  Alt 24. Feb 2004, 12:11
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.

Gruß

manuel
sometimes I feel diagonally parked in a parallel universe
  Mit Zitat antworten Zitat
Skiron

Registriert seit: 14. Dez 2003
153 Beiträge
 
#7

Re: verkettete listen erstellen

  Alt 24. Feb 2004, 13:09
wenn mich nicht alles täuscht, sind verkette listen nichts anderes als arrays
in delphi gehts damit ein bisschen einfacher:
Delphi-Quellcode:
var
  Liste: array of MeinTyp;

...
  setLength(Liste, 1); //setzt dann die länge des Arrays
...
falls es sich in der Aufgabe darum handelt, eine verkette liste zu programmieren, kannste das logisch nicht nehmen.
da gibts aber dann noch was lustiges:

anstatt dem ganzen:
Delphi-Quellcode:
type
  PMeinTyp = ^TMeinTyp;
  TMeinTyp = record
    Item: integer;
    Next: PMeinTyp;
  end;

var
  First: PMeinTyp;

...
  new(First); //oder so, weiß es nicht mehr genau...
...
kannste nehmen:
Delphi-Quellcode:
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;

...
falls das noch gilt, is nämlich schon (fast) ein array
Mann zu Frau:
Zieh dich aus, wir müssen reden!
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: verkettete listen erstellen

  Alt 24. Feb 2004, 13:13
@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
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Skiron

Registriert seit: 14. Dez 2003
153 Beiträge
 
#9

Re: verkettete listen erstellen

  Alt 24. Feb 2004, 13:37
@Chewie: die Zugriffsprozedur deshalb in assembler, da bei mir die addition von Pointer und integer nicht so ganz geklappt hätte...
Mann zu Frau:
Zieh dich aus, wir müssen reden!
  Mit Zitat antworten Zitat
kriebs27

Registriert seit: 2. Dez 2003
Ort: Potsdam
6 Beiträge
 
#10

Re: verkettete listen erstellen

  Alt 25. Feb 2004, 12:52
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:59 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