Forum: Programmieren allgemein
by Gausi,
27. Mär 2023
So, wie ich den Verlauf des Threads verstehe, geht es weder um Binärbäume im Allgemeinen, noch um AVL-Bäume. Hier werden Bäume mit beliebigem Knotengrad gebraucht.
Forum: Programmieren allgemein
by Gausi,
13. Mär 2023
Wenn ich das richtig sehe, wird jetzt an keiner Stelle mehr die Eigenschaft Data der Nodes gesetzt. D.h. du erzeugst zwar Objekte vom Typ TNodeData und TNode, die Nodes wissen aber nichts von NodData. Wenn du dann auf Nodes.Data zugreifst, dann knallt es halt ...
Forum: Programmieren allgemein
by Gausi,
12. Mär 2023
Node := TNode.Create(CompareStr);
Data := TNodeData.Create(0,'TButton',nil,Node);
Data.KeyStr := 'TButton';
Root.AddSubnode(TNode.Create(CompareStr),Data); // ???
Warum erzeugst du an der markierten Stelle einen neuen Knoten? Das führt doch dazu, dass du an Root einen Knoten einfügst, der ein Data-Objekt enthält, das auf einen Knoten Node verweist, der nach Ablauf der Prozedur CreateNodes...
Forum: Programmieren allgemein
by Gausi,
6. Mär 2023
Wie Peter schon geschrieben hat, verwendest du vermutlich die falsche Datenstruktur. In einem Binärbaum hat jeder Knoten zwei Nachfolger. Das gilt für eine Verzeichnisstruktur ja in der Regel nicht - hier kann ein Ordner durchaus mehr als zwei Unterordner haben.
Ein AVL-Baum ist ein besonderer Binärbaum. Hier gilt zusätzlich, dass der Baum balanciert ist - d.h. die Teilbäume am linken und...