• Sábado 14 de Diciembre de 2024, 21:46

Autor Tema:  recorrido no recursivo  (Leído 1135 veces)

antonio_18

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
recorrido no recursivo
« en: Viernes 1 de Mayo de 2009, 12:36 »
0
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.