AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Freepascal AVLTree, Binären Baum allgemein verstehen?
Thema durchsuchen
Ansicht
Themen-Optionen

Freepascal AVLTree, Binären Baum allgemein verstehen?

Ein Thema von MPeters · begonnen am 4. Mär 2023 · letzter Beitrag vom 27. Mär 2023
 
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
722 Beiträge
 
Delphi 12 Athens
 
#2

AW: Freepascal AVLTree, Binären Baum allgemein verstehen?

  Alt 5. Mär 2023, 15:06
Du benutzt da eventuell die falsche Datenstruktur. Der Zweck eines (binären) Baumes ist es normalerweise, Daten in einer Weise zu organisieren, die es erlaubt, einen Eintrag (Knoten) so schnell wie möglich innerhalb des Baumes zu finden. Dazu muß man jeden Knoten an der richtigen Stelle in der Baumstruktur einfügen, und das erfordert oft sogar eine Reorganisation der existierenden Baumstruktur um den optimalen Aufbau für die Suche zu erhalten. All das sollte in der TAVLTree-Klasse gekapselt sein und die Add-Methode erledigt das Einsortieren. Das heißt:

Du erzeugst ein TMyData-Objekt und setzt seinen Inhalt, dann ein TAvlTreenode-Objekt und setzt dessen Data-Eigenschaft (oder Feld) auf die TMyData-Instanz. Dieses Node-Objekt übergibst Du an tree.Add.
Add sortiert den Node dann ein und setzt dabei dessen Parent, Left und Right-Felder. Das machst nicht Du!

Um einen Knoten zu suchen stellt die TAVLTree-Klasse (die ich nicht kenne) vermutlich eine Find oder Search-Methode zur Verfügung.

Eine solche Baumstruktur ist nicht dazu geeignet, eine existierende hierarchische Struktur (wie ein Festplattenverzeichnis) abzubilden. Dazu brauchst Du sowas wie die interne Struktur des VCL TTreeview. Die Knoten eines solchen "Baums" haben einen Parent-Node und eine Liste/Collection von Child-Nodes. Man kann in einem solchen Baum zwar jede Hierarchieebene sortieren aber das hilft nicht bei der Suche nach einem bestimmten Knoten, es sei denn, man sucht mit Hilfe eines kompletten Pfades. Ansonsten muß man den Baum komplett durchlaufen.

Es gab mal ein wirklich sehr gutes Buch zum Thema von Julian Bucknall: The Tomes of Delphi: Algorithms and Data Structures (ISBN 1-55622-736-1, Wordware Publishing). Google mal nach "Julian Bucknall Algorithm*"...
Peter Below
  Mit Zitat antworten Zitat
 


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 16:14 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