Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   verkettete Listen (https://www.delphipraxis.net/196047-verkettete-listen.html)

TigerLilly 19. Apr 2018 07:04

AW: verkettete Listen
 
<offtopic>Vielleicht wäre es klüger, das Anliegen des TE zu berücksichtigen, als den Thread zu kapern + persönliche Vorlieben kundzutun.</offtopic>

http://www.pascal-programming.info/a...inkedlists.php
http://mc-computing.com/Languages/De...nkedLists.html

Ghostwalker 19. Apr 2018 07:38

AW: verkettete Listen
 
[QUOTE=TigerLilly;1399765]<offtopic>Vielleicht wäre es klüger, das Anliegen des TE zu berücksichtigen, als den Thread zu kapern + persönliche Vorlieben kundzutun.</offtopic>
:gruebel::wiejetzt:

Gerkey 19. Apr 2018 07:50

AW: verkettete Listen
 
Hab's ja selbst versucht mit folgendem Beispiel aus (Hanser Verlag) Borland Delphi 7 Beispiel von Seite 728:
type
PKnoten = ^TKnoten;
TKNoten = record;
Nr : Integer;
Inhalt : String;
Next: PKnoten;
end;

private
public
end;
...

Nach Start kommt folgende Fehlermeldung: Feld M.Inhalt besitzt keine entsprechende Komponente ! Soll die Deklaration entfernt werden ?
Wo liegt der Haken ?

HolgerX 19. Apr 2018 08:08

AW: verkettete Listen
 
Hmm..

Zitat:

Zitat von Gerkey (Beitrag 1399774)
Delphi-Quellcode:
type
  PKnoten = ^TKnoten;
  TKNoten = record;
    Nr : Integer;
    Inhalt : String;
    Next: PKnoten;
  end;

private
public
end;
...

Könnte dies an dem Tippfehler liegen : TKNoten = record;
Hier ist ein ';' zu viel

p80286 19. Apr 2018 08:18

AW: verkettete Listen
 
Zitat:

Zitat von Gerkey (Beitrag 1399774)
Nach Start kommt folgende Fehlermeldung: Feld M.Inhalt besitzt keine entsprechende Komponente ! Soll die Deklaration entfernt werden ?
Wo liegt der Haken ?

Woher kommt
Delphi-Quellcode:
M.Inhalt
?
Zeig doch mal den vollständigen Code.

Gruß
K-H

Codehunter 19. Apr 2018 08:21

AW: verkettete Listen
 
Also ich arbeite recht oft mit verketteten Listen, wobei ich das eher verkettete Zeiger nennen würde. Das kommt in der Tat duch VirtualTreeView. Dort kann man, wenn man die Funktionsweise erst einmal kapiert hat, Baumstrukturen mit einer Million Knoten in Sekundenbruchteilen aufbauen. Mach das mal mit einem TTreeView 8-)

Aber auch die nachgelagerten Daten verkette ich ganz gerne über Zeiger auf Records. So kann ich die selben Daten in mehreren Bäumen bzw. Grids verwenden. Mein Projekt FMC macht das beispielsweise.

p80286 19. Apr 2018 08:41

AW: verkettete Listen
 
[OT]
Zitat:

Zitat von Codehunter (Beitrag 1399780)
So kann ich die selben Daten in mehreren Bäumen bzw. Grids verwenden.

Auch wenn das etwas fortgeschritten ist, kannst Du mal ein Beispiel posten?
[/OT]

Gruß
K-H

Codehunter 19. Apr 2018 09:15

AW: verkettete Listen
 
Zitat:

Zitat von p80286 (Beitrag 1399788)
Auch wenn das etwas fortgeschritten ist, kannst Du mal ein Beispiel posten?

Was genau willst denn wissen? Die Verkettung als solches ist ja einfach (Pointer-Element im Record, z.B. "ParentNode", "FirstChild", "NextSibling" - geht also über die Implementierung in TVirtualNode hinaus), die Verwendung von einmal reserviertem Speicher in mehreren VirtualTrees ist dann fallspezifisch. Beim oben erwähnten Projekt FMC sind die einzelnen Radiostationen eigentlich Childnodes im linken Tree. Dort werden sie jedoch ausgeblendet und stattdessen im rechten Grid, was ja auch ein verkappter VirtualTree ist, angezeigt.

Stevie 19. Apr 2018 10:06

AW: verkettete Listen
 
Newsflash: Performance of Array vs. Linked-List on Modern Computers

Codehunter 19. Apr 2018 10:17

AW: verkettete Listen
 
Zitat:

Zitat von Stevie (Beitrag 1399809)

Wie schon gesagt, das ist immer fallspezifisch. Ich wüsste keine sinnvolle Methode, hierarchische Strukturen in einem Array abzubilden ohne genau das künstlich zu erzeugen, was man eigentlich dadurch vermeiden will: Wildes Gespringe im Speicher. Obendrein hast du bei Arrays nur sehr starre Strukturen. Willst da mittendrin ein Element einfügen, verschiebst du den halben Ozean um einen Eimer Wasser einzufügen ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr.
Seite 2 von 3     12 3      

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