Precedente :: Successivo |
Autore |
Messaggio |
Zeldic Comune mortale

Registrato: 06/06/10 13:16 Messaggi: 1
|
Inviato: 06 Giu 2010 13:31 Oggetto: [C++] Unione di 2 Liste |
|
|
Ciao!! Non riesco ad unire queste 2 liste di interi. Effettuando il debug, l'esecuzione si interrompe quando giunge alla lettura del rigo che ho indicato.
Vi posto qui il mio programma interamente :
Codice: |
#include <iostream>
#include <stdlib.h>
using namespace std;
class Lista {
public :
char name;
Lista* next;
public :
Lista() { name = '\0'; next = NULL; }
~Lista() { name = '\0'; next = NULL; }
void insert(char new_name) { name = new_name; } // QUI L'ERRORE!!
char get_name() { return name; }
void point_at_next(Lista* where_to_point) { next = where_to_point; }
Lista* get_next() { return next; }
char creaLista(Lista*);
void show(Lista*);
void Union(Lista*, Lista*);
};
char Lista::creaLista(Lista* start) {
Lista* nuovo;
char car;
cout << "Carattere ---> ";
cin >> car;
cout << "\n";
if(start == NULL) {
nuovo = new Lista();
start->insert(car);
start->point_at_next(nuovo);
} else {
nuovo = start;
nuovo = new Lista();
nuovo->insert(car);
start->point_at_next(nuovo);
}
creaLista(nuovo);
}
void Lista::show(Lista* start) {
Lista* temp;
temp = start;
cout << "Gli elementi della lista sono : \n\n";
while(temp != NULL) {
cout << temp->get_name() << " ";
temp = temp->get_next();
}
}
void Lista::Union(Lista* lista1, Lista* lista2) {
cout << "Gli elementi della lista unificata sono i seguenti : \n\n";
while( lista1->get_next() ) {
cout << lista1->get_name() << " ";
lista1 = lista1->get_next();
}
while( lista2->get_next() ) {
cout << lista2->get_name() << " ";
lista2 = lista2->get_next();
}
}
main() {
Lista* l1;
Lista* l2;
Lista* start = NULL;
l1 = new Lista();
cout << "Inserisci i caratteri appartenenti alla prima lista : \n";
cout << "Digita '0' se vuoi terminare l'inserimento.\n\n";
l1->creaLista(start);
l1->show(l1);
cout << "\n\n";
system("PAUSE");
l2 = new Lista();
cout << "Inserisci i caratteri appartenenti alla seconda lista : \n";
cout << "Digita '0' se vuoi terminare l'inserimento.\n\n";
l2->creaLista(start);
l2->show(l2);
cout << "\n\n";
system("PAUSE");
start = new Lista();
start->Union(l1, l2);
delete start;
delete l1;
delete l2;
cout << "Premi Invio per terminare..";
cin.ignore();
return EXIT_SUCCESS;
}
|
Spero qualcuno di buon cuore possa aiutarmi! |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11810 Residenza: Tokelau
|
Inviato: 07 Giu 2010 13:08 Oggetto: |
|
|
scusa, ma per unire le due liste non ti basta far puntare l'ultimo elemento della prima lista al primo elemento della seconda lista?  |
|
Top |
|
 |
|
|
Non puoi inserire nuovi argomenti Non puoi rispondere a nessun argomento Non puoi modificare i tuoi messaggi Non puoi cancellare i tuoi messaggi Non puoi votare nei sondaggi
|
|