Scusa è vero hai ragione.
Non ho specificato niente.
Allora sto implemantando un albero binario di ricerca in c++.
Oltre ai solito metodi(add, search, remove ecc) che funzionano, devo fare il metodo della visita postOrder(o anche inOrder o preOrder a scelta).
Ho scelto la postOrder.
Ho fatto la classe const_iterator con i relativi metodi per poter utilizzare l'iteratore.
Chiusa la classe const_iterator ho fatto:
codice:
const_iterator begin() const{
return const_iterator(root);
}
const_iterator end() const{
while(true){
root = root.right;
}
return const_iterator(root);
}
template <class T> void visitaPostOrder(Node<T>* nodo, const_iterator i){
visitaPostOrder(nodo, i--);
visitaPostOrder(nodo, i++);
cout << nodo->key << endl;
}
nel main invece come test per la visita lo faccio in questo modo
codice:
template <class T> void visitaAlbero_Const(AlberoBinario<T> &nodo){
typename AlberoBinario<T>::iterator postOrder = postOrder = albero.begin();
while(postOrder != albero.end()){
cout << *postOrder << endl;
postOrder++;
}
Grazie per l'aiuto!