Baum als Klasse
-
Hallo, ich probiere gerade, einen verketteten Baum zu erstellen. Dazu hätte ich aber einige Fragen.
Ich habe folgende Klasse:
//Knoten.h class Knoten { private : Knoten * parent; //zu testzwecken vorerst nur parent const char* text; public : Knoten(const char*); void SetParent(Knoten); Knoten* GetParent(); const char* GetText(); }; //Knoten.cpp Knoten::Knoten(const char* ch) { text = ch; parent = NULL; } void Knoten::SetParent(Knoten knoten) { parent = &node; } Knoten* Knoten::GetParent() { return parent; } const char* Knoten::GetText() { return text; }1. Gibt es da irgendwo Fehler ?
2. Wie kann ich SetParent mit einem Zeiger als Argument schreiben ?
3. Wenn ich z.b folgenden Code habe :int main { Knoten k("child"); Knoten k2("parent"); k.SetParent(k2); }wie kann dann direkt über k.GetParent() auf k2.GetText() zugreifen ?
-
Mit k.getParent()->GetText()
-
Hi,
aber immer schön aufpassen. Wenn k keinen elter (sagt man das so ?) hat, geht das schief.
-
Danke schonmal für die Antworten.
es scheint jetzt zu klappen. Zumindest liefert k.GetParent()->GetText() den richtigen String.
Die Funktion SetParent habe ich nun wie folgt abgeändert :
void Knoten::SetParentKnoten *k) { parent = k ; }Ich will damit bezwecken, dass der Zeiger Parent nun auf k zeigt. Ist das so richtig. oder werden bei dieser Zuweisung Daten kopiert (was ja langsamer wäre) ?
-
höggie schrieb:
Ist das so richtig. oder werden bei dieser Zuweisung Daten kopiert (was ja langsamer wäre) ?
Der Pointer wird natürlich kopiert.

Kurt
-
wozu dient dein baum denn eigentlich?

denn wenn du immer nur einen pointer auf den parent-knoten hast
kannst du den baum ja auch nur in eine richtung traversieren, von einem
gegebenen koten zur wurzel, kannst weder in andere äste absteigen noch
von der wurzel aus den baum traversieren