Hallo,
Ich habe folgendes Codestück:
Delphi-Quellcode:
type
TMyData = class
public
Filename: string;
Content: string;
end;
function CompareMyData(Data1, Data2: Pointer): integer;
begin
Result:=CompareFilenames(TMyData(Data1).Filename,TMyData(Data2).Filename);
end;
var
tree: TAVLTree;
myData1: TMyData;
myData2: TMyData;
MyData3: TMyData;
MyData4: TMyData;
MyData5: TMyData;
MyData6: TMyData;
tree: TAVLTree;
node1: TAVLTreeNode;
node2: TAVLTreeNode;
node3: TAVLTreeNode;
node4: TAVLTreeNode;
node5: TAVLTreeNode;
node6: TAVLTreeNode;
root: TAVLTreeNode;
constructor TmyApp.create;
begin
tree := TAVLTree.Create(@CompareMyData);
root := nil;
node1 := TAVLTreeNode.Create;
node1.Parent := root;
myData1 := TMyData.Create;
myData1.Content := 'Dateninhalt'; //sei jetzt mal die Wurzel
node1.Data := myData1;
node1.Left := nil;
node1.right:= nil;
tree.Add(node1);
node2 := TAVLTreeNode.Create;
myData2 := TMyData.Create;
myData2.Content := 'Komponente'; //könnte ebenso Wurzel sein
node2.Data:=myData2; //wie Standard in der Komponentenpalette
node1.Right := node2;
node1.Left := nil;
node2.Parent := node1;
tree.Add(node2);
node3 := TAVLTreeNode.Create;
MyData3 := TMyData.Create;
MyData3.Content:='Formular'; //könnte Subknoten für Komponente sein
node3.Data := myData3; //hier zum Beispiel ein Formular
node2.right := node3;
node2.left := nil;
node3.Parent := node2;
tree.Add(node3);
node4 := TAVLTreeNode.Create;
MyData4 := TMyData.Create;
MyData4.Content:='ToolBar'; //oder eine ToolBar
node4.Data := myData4;
node3.Right := node4;
node3.Left := nil;
node4.Parent := node3;
tree.Add(node4);
node5 := TAVLTreeNode.Create;
MyData5 := TMyData.Create;
myData5.Content := 'Directories'; //Das wäre dann ein Hauptverzeichnis
node5.Data := myData5;
node4.Left := node5;
node4.Right := nil;
node5.Parent := node4;
tree.Add(node5);
node6 := TAVLTreeNode.Create;
MyData6 := TMyData.Create;
myData6.Content := 'Alternativen'; //und hier irgendein Unterverzeichnis
node6.Data := myData6;
node5.Right := node6;
node5.left := nil;
node6.Parent := node5;
tree.Add(node6);
Ich will hier Daten in einer Baumstruktur ablegen und suche eine allegemeine Vorgehensweise. Wie war das gleich noch mal mit dem binären Baum?
Wo gibt es dazu verständliche Doku?
Irgendwas mache ich hier noch verkehrt.
Wie würde der Baum für die Komponentenpalette aussehen und wie für einen Datei Verzeichnisbaum?
Ich muss ja dann einerseits den Baum korrekt aufbauen und dann auch korrekt anzeigen.
Dazu muss ich ja die Konten auch wieder finden.