PDA

Visualizza la versione completa : [C] Differenza fra PILA e CODA..


vip
04-02-2008, 16:06
Ciao a tutti, sto studiando il linguaggio C per lavoro.
E trovo difficoltà nel capire a cosa serva una "Gestione Di Pila" e una "Gestione Di Coda", perche e quando vanno usate?

pallinopinco
04-02-2008, 17:04
Pile e code sono strutture dati, dunque vengono utilizzate per memorizzare informazioni in modo da poter risolvere con efficacia ed efficienza un problema. Hai capito quali sono le differenze tra le 2 da un punto di vita concettuale, in altri termini, sai che differenza c'è tra LIFO e FIFO? :)

vip
04-02-2008, 17:07
si, la LIFO fa in modo che il l'ultimo inserito sia il primo estratto.. mentre per la FIFO il primo inserito sarà il primo estratto.. no?

MItaly
04-02-2008, 17:08
Pila (http://en.wikipedia.org/wiki/Stack_%28data_structure%29): è una struttura di dati equiparabile ad una pila di piatti: il primo piatto che viene messo nella pila è l'ultimo ad essere tolto, quello che viene messo per ultimo è il primo ad essere tolto.
Coda (http://en.wikipedia.org/wiki/Queue_%28data_structure%29): è una struttura di dati equiparabile ad una coda ad uno sportello: il primo che viene messo in coda è il primo ad essere tolto, l'ultimo che arriva è l'ultimo ad andarsene.

j4ck_andros
04-02-2008, 17:13
una pila è un vettore in cui il primo elemento che inserisci è l'ultimo che viene prelevato (come lo stack).
le operazione che si possono fare su una pila sono:
inserimento o push
prelevamento o pop
top.
l'operazione pop permette di prelevare l'ultimo elemento che hai inserito e di cancellarlo dal vettore.
top invece serve per avere l'elemento che sta in cima allo stack(pila).

la coda invece è al contrario; cioè il primo elemento che inserisci è il primo che viene prlevato.
e le operazioni sono
inserismento
cancellazione ecc...

se non hai capito qualcosa posta

ciao

vip
04-02-2008, 17:28
non ho capito perche quando prelevo un elemento dalla pila, mi si cancella dal vettore.. che utilità ha?

esempio:

libro pop(){
return libreria[cima--];
}

quando richiamo pop ( buflib=pop(); ) lo visualizza correttamente, ma dopo nn c'è piu niente nel vettore anche se io non gli ho detto di cancellarlo... è questa l'utilita? :D

j4ck_andros
04-02-2008, 17:33
si fa cosi perche lo stack funziona cosi :D

vip
04-02-2008, 17:36
a perfetto, era questa utilità che mi sfuggiva... grazie mille XD ciao

Loading