SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: antonio_18 en Viernes 1 de Mayo de 2009, 12:36

Título: recorrido no recursivo
Publicado por: antonio_18 en Viernes 1 de Mayo de 2009, 12:36
Hola, mi nombre es Antonio, y necesito un procedimiento postorden para recorrer un árbol... por ejemplo un recorrido preorden no recursivo sería el siguiente:

void preordenNR(const ArbolBinario<int>& a)
{
    ArbolBinario<int>::Nodo actual;
    stack<ArbolBinario<int>::Nodo> p;

    actual= ArbolBinario<int>::nodo_nulo;
    p.push(actual);

    actual= a.raiz();
    while (actual!=ArbolBinario<int>::nodo_nulo) {
      cout << a.etiqueta(actual) << ' ';
      if (a.derecha(actual)!=ArbolBinario<int>::nodo_nulo)
        p.push(a.derecha(actual));
      if (a.izquierda(actual)!=ArbolBinario<int>::nodo_nulo)
        actual= a.izquierda(actual);
      else {
        actual=p.top();
        p.pop();
      }
   }
}


Y yo lo que necesito es un procedimiento igual que este pero en vez de ser en preorden, que sea en postorden... si me ayudaseis os lo agradecería muchísimo.

Un saludo.