PDA

Visualizza la versione completa : pile e code [c++]


Alex'87
23-05-2004, 12:21
come implementare pile e code in c++?
sono riuscito ad implementare solo delle semplici liste,,,...

anx721
23-05-2004, 14:07
Per implementare una coda puoi utlizzare una struttura linkata in cui ti manieni un puntatore al primo e un puntatore all'ultimo elemento della coda: il primo serve per prelevare il prossimo elemento; l'ultimo per aggiungere in coda.

Per una pila ti basta il puntatore alla cima della pila sia per l'operazione di push che per quella di pop.

Alternativamente, se il numero di elementi massimo e limitato, puoi utilizzzare un array e ti mantieni la prima e l'ultima posizione con degli indici interi,

:ciauz:

Michele Facchin
23-05-2004, 17:37
Originariamente inviato da Alex'87
come implementare pile e code in c++?
sono riuscito ad implementare solo delle semplici liste,,,...

Utilizzando la lista, puoi benissimo creare sia una coda che una pila.

Per fare la coda utilizzi due puntatori, uno che punta in testa, l'altro che punta in coda (quindi appena inserisci un elemento, tutti e due punteranno a questo).
Appena inserisci di nuovo, incrementi il puntatore di coda, e poi ancora e poi ancora.
Appena devi estrarre l'elemento dalla coda, visualizzi quello che è puntato dal puntatore di coda, e fai puntare la coda al sucessivo.
Infatti, nella coda il primo elemento che entra è il primo che esce.

La pila invece è molto più semplice, perchè ti basta un puntatore che punta alla testa.
Ogni volta che pushi un elemento, cambi il puntatore di testa, ogni volta che poppi un elemento, fai puntare il puntatore al elemento sotto.

Ovviamente l'elemento sarà del tipo:



struct elemento {
int informazione;
struct elemento *punt;
}

Ciao!

Alex'87
26-05-2004, 21:43
grazie adesso ci provo ma mi pare di aver capito!

Loading