[Algoritmi]Estrazione dalle code

bimba1
Buonasera!! Ho questo problema..devo creare una funzione che mi stampa n(non so quanti sono) oggetti di tipo struttura contenuti in una coda di dimensione DIM. L'estrazione e la stampa degli oggetti presenti nella coda deve essere in ordine di "cilindrata" crescente, le strutture infatti sono modeli di macchine e contengono al loro interno un int cilindrata. Come faccio a dare questa successione per a stampa invece della classica successione FIFO della coda?grazie mille!!! :-D

Risposte
BoG3
allora ...

prima di tutto tu parli di coda e di pila ... non ho capito quale dei 2 è il tuo caso. è importamnte saperlo dato k una usa la fifo e l'altra la lifo :)

allora... io consiglio di fare sempre un disegno.

quindi avrai una stuttura con dei campi (tutti quelli che ti servono per identificare la macchina) ed in piu' avrai un campo (almeno 1) chiamato "macchina_successiva" (o qualcosa di simile) che sara' un puntatore alla prossima macchina oppure sara' uguale a NULL se è l'ultimo elemento.

l'unico modo per stamparli in ordine crescente è quello di avere una coda ordinata, altrimenti ladevi riordinare tu (puoi usare uno dei algoritmi k + ti piacciono ed avrai bisogno di un oggetto tipo la struttura dati della coda da usare come buffer temporale, anche se ci sono altre soluzioni).

successivamente devi fare un ciclo di stampa del tipo:

controlla se il 1° elemento è nullo
se si allora esci perchè non ci sono macchine nella coda, altrimenti:
stampa i dati della prima macchina, poi fai un ciclo
finchè elemento_corrente.macchina_successiva != NULL //vuoldire che ci sono altre macchine
stampa dati macchina corrente
fine ciclo.

sono passati 2 anni da qnd ho usato le code :) ... spero che sia chiaro e giusto :)

PS: dimenticavo che tu hai la dimensione esatta della coda. in questo caso non devi controllare il puntatore all'elemento successivo ... basta che fai un ciclo di DIM volte ;)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.