Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93

    [C++] Merge Sort su due liste fuse

    Salve a tutti vorrei un aiuto per applicare il marge sort sulla fusione di due liste.

    questo è il codice di fusione che mi sono fatto per le due liste date come parametri

    codice:
    ListaV ListaV::fusione(ListaV &l1,ListaV &l2){
         
         ListaV l3;
         posizione p1,p2,p3;
         tipoelem e1,e2,e3;
         
         p1=l1.primoLista();
         p2=l2.primoLista();
         p3=l3.primoLista();
         
         while ((!l1.fineLista(p1))&&(!l2.fineLista(p2))){
               e1=l1.leggiLista(p1);
               e2=l2.leggiLista(p2);
               if (e1<e2){
                          l3.insLista(e1,p3);
                          p1=l1.succLista(p1);
                          }else{
                                l3.insLista(e2,p3);
                                p2=l2.succLista(p2);
                                p3=l3.succLista (p3);
                                 }//if,else
                               
         while (!l1.fineLista(p1)){//while2
               l3.insLista(l1.leggiLista(p1),p3); 
               p1=l1.succLista(p1); 
               p3=l3.succLista(p3);
               }//while2
         while (!l2.fineLista(p2)){//while3 
               l3.insLista(l2.leggiLista(p2),p3); 
               p2=l2.succLista(p2); 
               p3=l3.succLista(p3);
               }//while3 
         
         
        }//while
         
      
         
         
         return l3;
         
         
         };
    come posso crearmi il merge sort?
    grazie

  2. #2
    Cioè vorresti unire due liste e ordinarle al tempo stesso?
    Le liste di partenza sono ordinate?
    Come ti sei creato ListaV ?


    PS: Specifica che il linguaggio è C++ nel titolo
    Experience is what you get when you don’t get what you want

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93
    si praticamente si... le liste di partenza non sono ordinate... ListaV è una lista realizzata con vettore ...

  4. #4
    Quote Originariamente inviata da banino84 Visualizza il messaggio
    ListaV è una lista realizzata con vettore ...
    L'interfaccia di ListaV si può avere?
    Experience is what you get when you don’t get what you want

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93
    certo .... ecco a te

    codice:
    #ifndef _LISTAV_H
    #define _LISTAV_H
    #include <iostream>
    #include "CellaLista.h"
    
    
    // lunghezza massima della lista
    const int DIMENSIONE = 1024;
    
    
    typedef int posizione;
    
    
    // classe Lista
    class ListaV{
          
          public:
                 
                 
                 ListaV(); // costruttore
                 ~ListaV(); // distruttore
                 // operatori
                 void creaLista();
                 bool listaVuota() const;
                 tipoelem leggiLista(posizione) const;
                 void scriviLista(tipoelem, posizione);
                 posizione primoLista() const;
                 bool fineLista(posizione) const;
                 posizione succLista(posizione) const;
                 posizione predLista(posizione) const;
                 void insLista(tipoelem, posizione);
                 void cancLista(posizione);
                 //funzioni di servizio
                 void stampaLista()const;
                 void epurazione() ;
                 void ordina();
                 void cerca(tipoelem);
                 void inserimento();
                 void lunghezzaLista();
                 
          private:
                  CellaLista elementi[DIMENSIONE];
                  int lunghezza;
          };
          
    #endif // _LISTAV_H
    se ti servono anche le implementazioni fammi sapere

    PS. il metodo void ordina(); l'ho realizzato per selezione. A me interessa creare un Merge sort usando anche la fusione

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93
    Niente??

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 © 2025 vBulletin Solutions, Inc. All rights reserved.