Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/11/2008, 04:49
Link_OOT
 
Fecha de Ingreso: noviembre-2008
Mensajes: 47
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Ayuda con arboles binarios R/N (C++)

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