Puoi fare riferimento alle slide del prof Pulvirenti.
Se non ho capito male, siccome nella preorder visiti la radice, poi il sottoalbero sinistro e poi il destro, allora nello stack prima metti la radice, e poi, visto come funziona lo stack, inserisci prima il destro e poi il sinistro, cosģ togliendoli fuori li visiterai come ti sercono.codice:protected void iterPreorder(){ IntBTNodo p = root; Pila aiuto = new Pila(); if (p != null){ aiuto.push(p); while (!aiuto.isEmpty()){ p = (IntBTNodo) aiuto.pop(); p.visit(); // da gestire !! if (p.right != null) aiuto.push(p.right); if (p.left != null) aiuto.push(p.left); } } }

Rispondi quotando