Allora la domanda è: come faccio ad implementare la funzione ricerca della seguente traccia, in modo ricorsivo, io l'ho svolta in maniera iterativa...vi scrivo di seguito tutto:

TRACCIA
Testo della Prova

Si realizzi in C++ una classe Lista che consente la gestione di una rubrica telefonica.
La Lista è realizzata mediante una lista linkata. Ogni elemento della lista è una struttura i cui campi sono:

char * Nome
char * Cognome
int Telefono


La classe Lista deve prevedere (oltre al costruttore e al distruttore) i seguenti metodi:
- Inserimento in testa;
- Ricerca numero da cognome; (e’ preferibile l’implementazione ricorsiva)
- Stampa a video;
- Stampa su file;


Il mio file di specifica rubrica.h:

codice:
struct nodo;
typedef struct nodo* puntnodo;
typedef struct nodo{
        char* nome;
        char* cognome;
        int telefono;
        puntnodo punt;
        };

class lista{
      puntnodo l;
public:
       lista():l(0){}
       ~lista();
       void push(char*,char*,int);
       void ricerca(char* cogn);
//La funzione cancella non c'era nella traccia
       void cancella(char* cogn);
       void stampavideo();
       void stampafile();
};
Il mio file di implementazione rubrica.cpp(di cui riporto solo la funzione ricerca in forma iterativa):

codice:
/*Ricerca del numero di una persona dato il cognome(se ci sono cognomi uguali 
mi da il numero della persona inserita più di recente),questa è una versione
iterativa*/ 
void lista::ricerca(char* cogn){
     puntnodo temp=l;
     bool trovato=false;
     while(temp){
                 if(!strcmp(temp->cognome,cogn)){
                 trovato=true;
                 cout<<"Il numero dell'utente "<<temp->cognome;
                 cout<<" e' "<<temp->telefono<<"\n";
                 break;
                 }
                 else temp=temp->punt;
                 }           
     if(!trovato)cout<<"Il cognome non e' presente nella lista!\n";
     }
Il main penso sia inutile riportarlo allo scopo della domanda...

vi ringrazio in anticipo per le risposte!

Grazie mille!