Thema: Delphi Zeiger überführen

Einzelnen Beitrag anzeigen

CodyConcrete

Registriert seit: 18. Okt 2007
9 Beiträge
 
#1

Zeiger überführen

  Alt 19. Okt 2007, 00:45
Hi,
Ich benötige eine Baumstruktur die aber Verschiedene Elemente enthält
Ich habe zwei verschiedene Elementtypen
Die Knoten des Baums sollen bei mir entweder wiederrum auf Knoten zeigen können, oder aber auch auf die Blätter
Da beide aber unterschiedliche Elemente sind hab ich momentan keine Idee wie ich dies Realisieren kann
ich habe bisher einen Zeiger auf eine Klasse gemacht habe, von der auch beide Elemente des Baums abstammen.

Problematisch wird es wenn ich nun ein neues Element hinzufüge
Wenn ich weiß, dass es sich um ein Knoten handeln und ich es auch als solch einen definiere kommt natürlich ein Fehler, wenn ich diesen an den Baum angliedern will

hier ma Quelltext dazu:

Delphi-Quellcode:
  pTreeElement = ^TreeElement; //Zeiger auf die Klasse
  TreeElement = class
    ....
    Parent : pTreeElement;
   end;

  pTreeNode = ^TreeNode; //Zeiger direkt auf die Knoten-Elemente
  TreeNode = class(TreeElement)
   public
    ...
    Child : Array of pTreeElement; //Zeiger sollen wie oben gesagt sowohl auf TreeNode als auch
                                                //TreeLeave zeigen können
   end;

  TreeLeave = class(TreeElement)
   public
    ...
   end;
Zu den Problemen(in den einzelnen Prozeduren weiß ich ob es sich um Knoten oder Blätter handelt):
Delphi-Quellcode:
//aus der Prozedur zum Hinzufügen eines Knotens
Var p : pTreeNode;
....
  anTree^.Child[...] := p; //<-----------Fehler Inkompatible Typen
                           //anTree is der Knoten an den angegliedert wird
Hoffe ihr versteht mein problem
Einzige Möglichkeit die mir einfällt wäre jedem Knoten eine extra Liste/Feld zuzuweißen für die Blätter(wäre aber denke nich grad die schönste Mgöglichkeit)

danke schonmal für alle antworten
  Mit Zitat antworten Zitat