Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    visita con iteratori(c++)

    ciao a tutti.

    Ho implementato la visita di un albero di interi con gli iteratori.
    Solo che ho un bel pò di problemi xke molto probabilmente sbaglio ad utilizzarli

    qualcuno a qualche idea?

    grazie per l'aiuto!

  2. #2

    Re: visita con iteratori(c++)

    Originariamente inviato da bugino88
    ciao a tutti.

    Ho implementato la visita di un albero di interi con gli iteratori.
    Solo che ho un bel pò di problemi xke molto probabilmente sbaglio ad utilizzarli

    qualcuno a qualche idea?

    grazie per l'aiuto!
    Benvenuto nel forum di HTML.it

    E' palese che non possiamo rispondere a domande così poste e descritte: che tipo di problemi hai? Errori riscontrati? Se sì, quali? Non ti riesce fare qualcosa in particolare?
    Hai già scritto del codice? Se sì, perchè non lo posti? (nei tag CODE, mi raccomando).

    Come vedi la tua richiesta è incompleta, cerca di aggiungere molti più dettagli.


    Ciao

  3. #3
    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!

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Questa funzione è sbagliata.
    codice:
                    const_iterator end() const{
    			while(true){ // dovrebbe essere while (root != NULL)
    				root = root.right;
    			}
    			return const_iterator(root);
    		}
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.