[C++] alberi binari Inorder

fire7777777
ragazzi sto provando a eseguire un metodo che fa le visiste in order ma non riesco mi aiutate? lo devo fare iterativo con le pile, sto provando ma non capisco che errore faccio, mi date una mano?

All'uni stiamo usando una classe albero creata a d'oc, i metodo sinistra, destra sono i prossimi nodi , radice si intendiamo per esempio : 1
2 4
5 3
se consideriamo il 2,3,4 il 2 sarebbe la radice, 5 sinistra e 3 destra , non so se mi spiego :)



void inorder(albero<Punti> &a){
    
    stack<albero<Punti> >pila;
    pila.push(a);
    
    while(!pila.empty()){
        albero<Punti> a1=pila.top();
        
        if(!a1.sinistra().e_vuoto()){
            pila.push(a1.sinistra());
        }else{
            cout << a1.radice<<endl;
            a1=pila.top();
            pila.pop();
          if(!a1.destra().e_vuoto()){ 
              a1=a1.destra();
            pila.pop();
            pila.push(a1);
          }
        }
    }

}

Risposte
fire7777777
up !

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.