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
Grazie per l'aiuto!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++; }

Rispondi quotando