Ciao!
Nel mio programma voglio semplicemente creare due liste di caratteri, per poi visualizzarle in un'unica lista. Utilizzo una classe per far ciò, l'inserimento dei caratteri termina quando si digita 'z' o 'Z'. Il problema che non riesco ancora a risolvere è che la funzione 'Union' non stampa a video la lista unita.. L'inserimento avviene credo correttamente, ma non visualizzo nulla, poi il programma si chiude.
Questa è la funzione 'Union' che dovrebbe unire le due liste e stamparle una accanto all'altra :
codice:
void UnionL::Union(UnionL* l1, UnionL* l2) {
cout << "Gli elementi della lista 'unione' sono i seguenti : \n\n";
while( l1->get_nxt() ) { /* Stampa gli elementi della 1-a lista. */
cout << "[ " << l1->get_car() << " ] ";
l1 = l1->get_nxt();
}
l2 = l1->get_nxt(); /* E' corretta quest'assegnazione?? */
while( l2->get_nxt() ) { /* Stampa gli elementi della 2-a lista. */
cout << "[ " << l2->get_car() << " ] ";
l2 = l2->get_nxt();
}
cout << "\n\n";
}
Io credo sia qui l'errore. Il metodo precedente, che non ho summenzionato è 'creaLista()', che ha il compito di popolare le 2 liste di caratteri; nel main() ho dichiarato 2 puntatori alla 1-a e 2-a lista ed un puntatore al primo elemento 'start' = NULL.
Chiamo le funzioni in questo modo :
codice:
lista1 = new UnionL();
lista1->creaLista(start);
system("PAUSE");
lista2 = new UnionL();
lista2->creaLista(start);
system("PAUSE");
start->Union(lista1, lista2);
Qualche suggerimento?