Código c++:
Ver original
ostream & operator << (ostream & os, const nTreeLNode<int> * t) { os << t; return os; } ostream & operator << (ostream & os, const nTreeLNode<int> & t) { if (t.isLeaf(t.root())) // El arbol solo es un nodo raiz { os << "Arbol (" << t.label(t.root()) << ")"; return os; } LNode<int> * hijo = t.leftMostChild (t.root()); os << " Arbol (" << t.label(t.root()); while (hijo) { os << ", " << t.subTree(hijo); hijo = t.rightSibling (hijo); } os << ")"; return os; }
La cuestion es que cuando imprimo por pantalla, me salen direcciones de memoria y no el árbol. Además, yo lo había hecho de esta forma (modificacion en la linea 3):
Código c++:
Ver original
ostream & operator << (ostream & os, const nTreeLNode<int> * t) { os << *t; return os; } ostream & operator << (ostream & os, const nTreeLNode<int> & t) { if (t.isLeaf(t.root())) // El arbol solo es un nodo raiz { os << "Arbol (" << t.label(t.root()) << ")"; return os; } LNode<int> * hijo = t.leftMostChild (t.root()); os << " Arbol (" << t.label(t.root()); while (hijo) { os << ", " << t.subTree(hijo); hijo = t.rightSibling (hijo); } os << ")"; return os; }
Pero poniendo el * delante del arbol (linea 3) no me compila mostrandome un error de candidatos o no seq. La verdad es que estoy algo bloqueao. Me podeis echar una mano? Si necesitais ver código de algun archivo o algo decirlo.
Muchas gracias