Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Zeldic
    Registrato dal
    Jan 2010
    Messaggi
    80

    [C++] Problema Coda sempre vuota

    Ragazzi, chi mi sa dire per favore come mai la mia coda risulta sempre vuota?? Ho fatto tantissimi tentativi.. debug.. ma niente.. Ogni dato che inserisco va nel primo elemento e non si aggiunge al successivo , così non si crea mai la coda, risultando vuota! Ve la posto :

    codice:
    #include <iostream>                      
    using namespace std;
    
    
    class Coda {
      private :  
        int dato;
        Coda *successivo;
    	
        public :   
          void enqueue(Coda* ultimo, Coda *start, int d); 
          void dequeue(Coda *start);
          bool isEmpty(Coda *start);
          int visualizza(Coda *start);
    };
    
    void Coda::enqueue(Coda *ultimo, Coda *start, int d) {
      Coda *nuovo;                                                  
      Coda *temp;
                 
      if(start == NULL) {                     
        nuovo = new Coda();                    
        nuovo->dato = d;
            
        ultimo = nuovo;
        start = nuovo;                                            
      } else {
                nuovo = new Coda();         
                nuovo->dato = d;
                
                ultimo->successivo = nuovo;  
                ultimo = nuovo;
        }    
    } /* End enqueue(). */
    
    void Coda::dequeue(Coda *start) {
      Coda *temp;
      
      temp = start;   // Utile per l'eliminazione dell'elemento in testa.
      cout << "L'elemento da eliminare e' il seguente ---> [ " << start->dato << " ]\n\n"; 
      start = start->successivo;
      
      delete temp;    
    } /* End dequeue(). */
    
    bool Coda::isEmpty(Coda *start) {
      if(start == NULL)
        cout << "La coda e' vuota!\n";
          else
            cout << "Sono presenti degli elementi all'interno della coda.\n"; 
    } 
    
    int Coda::visualizza(Coda *start) {
      Coda *temp;
      
      temp = start;
      
      if(start == NULL)
        cout << "La coda e' vuota!\n";
          else {
                  while(temp != NULL) {
                    cout << " <--- [ " << temp->dato << " ]";
                    temp = temp->successivo;
                  }
          }
    }  
    
    
    main() {
      // Dichiarazione della variabili : 
      Coda *Start = NULL;
      Coda *last;
      int num;
      int opzione;
      
      last = Start;
      
      do {
      	    cout << "Scegli una della opzioni seguenti : \n\n"
      	            "1 ---> Enqueue;\n"
      	            "2 ---> Dequeue;\n"
      	            "3 ---> isEmpty;\n"
      	            "4 ---> visualizza;\n"
      	            "0 ---> Exiting program!\n\n"
      	            "Inserisci qui la tua scelta : ";
            cin >> opzione;
            cout << "\n\n";
            
            switch(opzione) {
    		  case 1 :
                cout << "Digita l'elemento da inserire nella coda : ";
                cin >> num;
                cout << "\n"; 
                last->enqueue(last, Start, num);
    	      break;
    	    
    	      case 2 : 
                Start->dequeue(Start);
              break;
    		  
    		  case 3 :  
                Start->isEmpty(Start);	    
              break;
              
    		  case 4 : 
                Start->visualizza(Start);
    		  break;
    		  
    		  case 0 : 
    		    cout << "Exiting program!\n\n";
    		  break;
    		  
    		  default : 
    		    cout << "Wrong choice!\n\n";
    		  break;
    	    }
      } while(opzione != 0);
      
    system("PAUSE");
    return 0;
    }
    Vi sarei molto grato se qualcuno di buon cuore potrà darmi anche qualche piccolo suggerimento! Grazie!!

  2. #2
    Utente di HTML.it L'avatar di Zeldic
    Registrato dal
    Jan 2010
    Messaggi
    80
    Devo consegnarla corretta!

  3. #3
    Utente di HTML.it L'avatar di Zeldic
    Registrato dal
    Jan 2010
    Messaggi
    80
    Vabbè, se nessuno mi sa aiutare su questa coda, allora vuol dire che ho creato un "mostro con le parvenze di una coda", ma una coda non lo è.. Vorrà dire che implementerò un'altra, possibilmente meno "aliena"....

  4. #4
    In effetti quella classe non rappresenta una coda, ma un elemento di una coda... perché non riprendi dal prototipo che avevi presentato qui, su cui ti avevo già dato qualche suggerimento?
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di Zeldic
    Registrato dal
    Jan 2010
    Messaggi
    80
    Già fatto!

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.