AGB  ·  Datenschutz  ·  Impressum  







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

verkettete Listen

Ein Thema von Gerkey · begonnen am 18. Apr 2018 · letzter Beitrag vom 20. Apr 2018
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

AW: verkettete Listen

  Alt 19. Apr 2018, 17:51
Auch wenn das etwas fortgeschritten ist, kannst Du mal ein Beispiel posten?
Was genau willst denn wissen?
Erst einmal vollkommen ohne Virtualxxxx. Dein (?) Ansatz ist ja eine Pointer-Verküpfung (und eine zweite und eine dritte...) in der in jedem Eintrag (Node?) ein pointer auf Daten enthalten ist. Aber wie sind die Daten organisiert? Einfach verpointerte Liste oder Array oder ? Oder liegen die wild im Speicher herum und wenn die Organisationslisten weg sind hast du Datenzombies?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: verkettete Listen

  Alt 19. Apr 2018, 19:40
Auch wenn das etwas fortgeschritten ist, kannst Du mal ein Beispiel posten?
Was genau willst denn wissen?
Erst einmal vollkommen ohne Virtualxxxx. Dein (?) Ansatz ist ja eine Pointer-Verküpfung (und eine zweite und eine dritte...) in der in jedem Eintrag (Node?) ein pointer auf Daten enthalten ist. Aber wie sind die Daten organisiert? Einfach verpointerte Liste oder Array oder ? Oder liegen die wild im Speicher herum und wenn die Organisationslisten weg sind hast du Datenzombies?
Im Wesentlichen packe ich die Nutzdaten als Payload gleich mit in den Record. Der Record wird mit New() und Dispose() bzw. Initialize() und Finalize() erstellt und zerstört. Seit man Records auch noch Prozeduren anfügen kann, implementiere ich die ganze Verknüpfungslogik direkt im Record. Wenn man es richtig anstellt, stupst man nur das Rootelement an und das Ganze schreibt sich z.B. selbst in einen Stream zwecks Sicherung auf Festspeicher.

Willst du mittendrin ein Element löschen, dann lässt du dieses Element alle Verweise auf sich selbst in anderen Elementen auf das jeweils nächste Nachbarelement ändern. Das geht, wenn jedes Element seine Nachbarn "persönlich" kennt.

Du könntest wenn du viel Wert auf Integrität legst, einen Zeiger auf jeden Record in eine TList schreiben, um sie dann in einem Destructor abzuarbeiten und freizugeben. Aktiv arbeiten würde ich aber mit der TList nicht.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: verkettete Listen

  Alt 20. Apr 2018, 08:03
Ah so, vielen Dank!
das halte ich mal im Hinterkopf

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:46 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