vuoi
o PayPal
tutte le volte che vuoi
Il programma fa uso delle classi.
#include <cstdlib>
#include <iostream>
using namespace std;
class Nodo {
public:
Nodo() { dato = 0; next = 0; }; // costruttore senza parametri
void Set(char c) { dato = c; }; // imposta il valore del dato
memorizzato
char Get() { return dato; }; // ritorna il valore del dato
memorizzato
void SetNext(Nodo *p) { next = p; }; // imposta l'indirizzo del nodo
successivo
Nodo *GetNext() { return next; }; // ritorna l'indirizzo del nodo
successivo
~Nodo() { delete next; }; // distruttore. Rimuove il nodo
successivo
private:
char dato; // dato memorizzato
Nodo *next; // puntatore al nodo successivo
};
// Funzione ricorsiva che mostra tutti i nodi della lista
void MostraNodi(Nodo*);
int main()
{ Nodo *lista = 0, *endList, *p;
cout << "\n\tCreazione di una lista di oggetti da un unsieme di caratteri\n"
<< endl;
cout << "Inserire una sequenza di caratteri da tastiera (Ctrl+Z per
terminare)" << endl;
char carattere;
// Crea la lista
while( cin.get(carattere) ) {
p = new Nodo; // alloca un nuovo nodo
// Memorizza il carattere letto e il puntatore al prossimo elemento
p->Set(carattere); �
p->SetNext(0); // questo anche l'ultimo nodo
�
if(!lista) // se la lista vuota inizializza i...
lista = endList = p; // ... puntatori alla testa e alla coda
della lista
else {
endList->SetNext(p); // il nodo precedente punta a p
�
endList = p; // il nodo terminale adesso p
}
}
// Visualizza tutti i nodi della lista
MostraNodi(lista);
/*
Dealloca la lista dalla memoria grazie ai distruttori che rimuovono
tutti i suoi nodi in cascata
*/
delete lista;