Ragazzi qualcuno puņ gentilmente spiegarmi la versione iterativa delle visite inorder e preorder?La postorder mi funziona, ma le altre due non riesco a venirne a capo.
Vi posto la mia postorder:
codice:
	public String iterPostorder()
	{
		String str="";
		Stack<BSTNode<E>> aux=new Stack<BSTNode<E>>();
		//simulo i due valori del flag 0 e 1 , con un doppio inserimento quindi inserendo due volte lo stesso valore nello stack
		aux.push(root);
		aux.push(root);
		
		//finchč la PILA NON č VUOTA
		while(!aux.isEmpty())
		{
			BSTNode<E> temp=aux.pop();
			// Se ho estratto un nodo "duplicato" (controllo se la cima č uguale a quello che ho 
			// appena estratto oppure se ho finito lo stack), allora (ramo else) aggiungo i figli (sempre duplicandoli), altrimenti
			// vuol dire che devo stampare il nodo.
			if(aux.isEmpty() || aux.top() != temp)
				str+=temp.getLabel().toString()+"\n";
			else
			{
				// Poichč uso uno stack devo inserire i figli in ordine inverso (prima il right e poi il left)
				// in modo che la pop() li estragga nell'ordine giusto (prima left e poi right), sempre usando
				// il trucchetto della "duplicazione".
				if(temp.getRight()!=null)
				{
					aux.push(temp.getRight());
					aux.push(temp.getRight());
				}
				
				if(temp.getLeft()!=null)
				{
					aux.push(temp.getLeft());
					aux.push(temp.getLeft());
				}
			}
		}
		return str;
	}
Come posso scrivere le altre due visite?Grazie a tutti