Ordinamento char di lista linkata

di il
5 risposte

Ordinamento char di lista linkata

Salve, ho un problema riguardo l'ordinamento di char in una lista linkata.
Non so proprio come e dove mettere le mani.

5 Risposte

  • Re: Ordinamento char di lista linkata

    Parti dal codice che hai scritto e mostralo. Poi dettaglia meglio il problema e cosa pensavi di fare per rimediare.

    "Non so dove mettere le mani" non è possibile ...
  • Re: Ordinamento char di lista linkata

    Allora ho una classe Clienti e un Elenco Clienti.

    La classe Clienti è questa:
    class clienti{
      private:
            char* Nome;
            char* Cognome; 
            int CodiceCliente;
    friend ostream& operator<<(ostream&,const clienti&);
    friend istream& operator>>(istream&, clienti&);
    
      public:
          clienti(const char* N="",const char* C="", const int& CC=0);
          clienti(const clienti&);
          
          int& get_Codice(){return CodiceCliente;};
          
          bool operator ==(const clienti&);
              
          clienti& operator=(const clienti&);
          
          
          ~clienti(){delete[] Nome;delete[] Cognome;};
    };
    E un elenco clienti
    struct record{
      clienti elem;
      record * next;  
    };
    
    class elencoclienti{
      private:
          record* l;
         
         
      public:
          elencoclienti(){l=0;};
          
          void Inserisci( clienti&);       // inserisce un cliente nell'elenco
          bool inElenco(const clienti&);        // verifica la presenza di un cliente nell'elenco
          void StampaElenco();                  // visualizza il contenuto dell'elenco
        
        
    };
    Ora io ho già fatto l'ordinamento di interi della lista.
    void elencoclienti::Inserisci(clienti& C){
        if(l==0 || l->elem.get_Codice() > C.get_Codice()) {
            record* q;
        try{
            q = new record;	
        }catch (std::bad_alloc& ba) {
            cout<<"Errore di allocazione";
            }           
    	q->elem=C;	
    	q->next=l;	
    	l=q;    
                
       }else {                            
          record* prec=l;
          record* succ;                            
        
          record* q;
          try{
            q = new record;	
        }catch (std::bad_alloc& ba) {
            cout<<"Errore di allocazione";
            }           
          q->elem=C;
          q->next=0;  
          while(prec->next && prec->next->elem.get_Codice()<C.get_Codice() ) prec=prec->next; 
          succ=prec->next;
          q->next=succ;
          prec->next=q;
       }  
    }
    Se volessi fare l'ordinamento in base a Cognome, dovrei fare uno stream compare e poi spostare quello "maggiore" in un record temporaneo, giusto?
  • Re: Ordinamento char di lista linkata

    Inserisci i tag CODE nel codice altrimenti non si capisce nulla ...
  • Re: Ordinamento char di lista linkata

    L'ho modificato.
    Scusami, ma non riuscivo ad usare Code con Chrome
  • Re: Ordinamento char di lista linkata

    Non c'è nessuno che mi può aiutare?
Devi accedere o registrarti per scrivere nel forum
5 risposte