PDA

Visualizza la versione completa : [C++] Da linked list a lista con cursori


Neptune
11-11-2010, 21:58
Salve ha tutti,
ho una classe in C++ con tutti i metodi per lavorare su una tradizionale lista linkata sviluppata con puntatori, ovvero questa qui:



class Lista
{
public:
/* posizione un puntatore a cella */
typedef Cella * posizione;
/* Prototipi degli 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 preclista(posizione) const;
void inslista(tipoelem,posizione&);
void canclista(posizione &p);
private:
posizione lista; //la lista un puntatore ad oggetto Cella
};


Ora secondo voi dite che possibile mantenere gli stessi metodi in modo da poter creare una futura classe "padre" da cui ereditano entrambi in cui non so, creare un metodo di ordinamento che funziona con entrambe le realizzazioni? Anche perch lo scopo dell'esercitazione anche avere lo stesso main che messo su una e sull'altra realizzazione funzioni senza cambiare una virgola.

In questa classe se cambiassi la typedef di posizione e la facessi diventare un semplice intero, come privato mettessi un array e poi cambiassi tutti i metodi dite che funzionerebbe ugualmente o secondo voi ci vuole per forza di cose un qualche cambiamento?

Avete per caso sottomano qualche realizzazione di lista con cursori (ovvero liste che vengono sviluppate in un array che viene chiamato spazio) abbastanza semplice da cui prendere spunto? :fagiano:

Vi ringrazio in anticipo,
Neptune.

Neptune
12-11-2010, 19:09
Avrei un dubbio, in questa rappresentazione si usa un array di tipo statico come "Spazio delle liste", ovvero in uno stesso array vengono inserite pi liste collegate. Questo implica che se chiamo 10 oggetti di tipo "Lista Collegata" condivideranno tutti lo stesso array per la loro rappresentazione.

Ora il dubbio che mi venuto come faccio ad inizializzare questo array?? Non posso mica inizializzalro nel costruttore dell'oggeto altrimenti ogni volta che chiamo un nuovo oggetto mi cancellerebbe tutti gli altri. Al contempo non posso nemmeno sperare che sia l'utilizzatore finale ad inizializzarlo prima dell'uso.

Voi cosa consigliate?

Loading