AGB  ·  Datenschutz  ·  Impressum  







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

Zeiger überführen

Ein Thema von CodyConcrete · begonnen am 19. Okt 2007 · letzter Beitrag vom 19. Okt 2007
 
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
 


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 17:58 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