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