Problema con proyecto de arboles

Phass
09 de Marzo del 2010
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

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):

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