Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/03/2010, 10:22
Phass
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 15 años, 5 meses
Puntos: 0
Problema con proyecto de arboles (Imprime Dir. de memoria)

Hola, tengo un proyecto para una practica de la universidad de manejar arboles. LA cuestion es la siguiente: cuando intento mostrar el arbol por pantalla sobrecargué los dos operadores de salida como sigue
Código c++:
Ver original
  1. ostream & operator << (ostream & os, const nTreeLNode<int> * t)
  2. {
  3.         os << t;
  4.     return os;
  5. }
  6.  
  7. ostream & operator << (ostream & os, const nTreeLNode<int> & t)
  8. {
  9.     if (t.isLeaf(t.root())) // El arbol solo es un nodo raiz
  10.     {
  11.         os << "Arbol (" << t.label(t.root()) << ")";
  12.         return os;
  13.     }
  14.    
  15.     LNode<int> * hijo = t.leftMostChild (t.root());
  16.     os << " Arbol (" << t.label(t.root());
  17.     while (hijo)
  18.     {
  19.         os << ", " << t.subTree(hijo);
  20.         hijo = t.rightSibling (hijo);
  21.     }
  22.     os << ")";
  23.     return os;
  24. }

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
  1. ostream & operator << (ostream & os, const nTreeLNode<int> * t)
  2. {
  3.         os << *t;
  4.     return os;
  5. }
  6.  
  7. ostream & operator << (ostream & os, const nTreeLNode<int> & t)
  8. {
  9.     if (t.isLeaf(t.root())) // El arbol solo es un nodo raiz
  10.     {
  11.         os << "Arbol (" << t.label(t.root()) << ")";
  12.         return os;
  13.     }
  14.    
  15.     LNode<int> * hijo = t.leftMostChild (t.root());
  16.     os << " Arbol (" << t.label(t.root());
  17.     while (hijo)
  18.     {
  19.         os << ", " << t.subTree(hijo);
  20.         hijo = t.rightSibling (hijo);
  21.     }
  22.     os << ")";
  23.     return os;
  24. }

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

Última edición por Phass; 09/03/2010 a las 16:06