Tengo un arbol RN con una serie de palabras, y estoy intentando cojer el contenido de ese arbol y guardarlo en un archivo *.txt, he intentado hacer un recorrido inorden y guardarlo en una lista y luego guardar la lista, pero no consigo compilar.
El codigo del metodo Inorden que me hace el recorrido y me escribe es el siguiente:
template <class T>
void RojoNegro::inOrdenIterativo(RojoNegro<T> &arbol, ostream &os)
{
stack<NodoRojoNegro<T> *> pilaRecorrido;
list<string> diccionarioLista;
NodoRojoNegro<T> *p=raiz;
while (p!=NULL)
{
for ( ; (p->enlaces[0] != NULL); p=p->enlaces[0])
{
pilaRecorrido.push(p);
diccionarioLista.push_back(p);
}
while ((p!=NULL) && (p->enlaces[1] == NULL))
{
diccionarioLista.push_back(p);
cout<<p->clave<<", ";
if (pilaRecorrido.empty())
return;
p=pilaRecorrido.top();
pilaRecorrido.pop();
}
cout<<p->clave<<", ";
p=p->enlaces[1];
}
diccionarioLista.sort();
list<string>::iterator it;
for (it = diccionarioLista.begin(); it != diccionarioLista.end(); it++)
{
os<<(*it)<<endl;
}
y luego desde el main pongo lo siguiente:
diccionarioRN.inOrdenIterativo(diccionarioRN, nombreDiccionario);
Que tengo mal? Me podria alguien ayudar a solucionarlo?
PD: Aprovecho para presentarme en este foro, que creo que visitare bastante
Gracias por la ayuda