|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 384
|
[c]implementare coda circolare
salve ragazzi volevo chiedervi se qualcuno di voi avesse una coda circolare in c già implementata con funzioni, aggiungi alla coda , o rimuovi, grazie a tutti in anticipo.
Mi fareste davvero un gran piacere e risparmierei davvero molto tempo.
__________________
ho concuso felicemente con fabbri00 , flueretty, bidduzzo,WildCat Hendrix, chapi,iasudoru, 791ChessMateK ,agma , farina1 . UNICA esperienza negativa utente da evitare sochmell QUI |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
La cosa migliore sarebbe che tu la scrivessi da solo...altrimenti cosa impari ?
Comunque è semplici...ti posso dare qualche indizio... Prendi un vettore di dimensione N... Hai due indici...uno alla testa e uno alla coda... A coda vuota gli indici puntano al primo elemento (elemento 0 del vettore)... Per l'inserimento basta inserire l'elemento all'indice puntato dall'indice alla coda...ed incrementi l'indice... Per l'estrazione, ritorni l'elemento puntato dall'indice alla testa ed incrementi l'indice che punta alla testa... Lascio a te le condizioni di coda vuota o piena da verificare rispettivamente nell'estrazione e nell'inserimento (verifiche da fare prima di incrementare i rispettivi contatori)... |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2004
Città: $HOME
Messaggi: 1213
|
ma se si usa un vettore si crea una limitazione nella dimensione della coda..non e' meglio crearla dinamicamente?
__________________
Last.fm: My Profile / GamerTag XBL: Martcus / Flickr / deviantArt iBook 12'' / MacBook Pro 13'' / iPhone 3G 16GB Black / iPod 5G 30GB / iPod Nano 2G 4GB |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Una coda circolare è storicamente limitata...altrimenti non può essere circolare...
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2004
Città: $HOME
Messaggi: 1213
|
ok. comunque si può anche implementarla dimamicamente
__________________
Last.fm: My Profile / GamerTag XBL: Martcus / Flickr / deviantArt iBook 12'' / MacBook Pro 13'' / iPhone 3G 16GB Black / iPod 5G 30GB / iPod Nano 2G 4GB |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Mi puoi fare un esempio di coda circolare dinamica... Che senso ha farla circolare se è dinamica ? A meno che per dinamica tu non intenda con il vettore allocato dinamicamente...
Mi spiego meglio... Se la facessi dinamica non farei assolutamente una coda circolare, ma farei una lista e allocherei un nuovo nodo per ogni inserimento in coda e deallocherei il nodo dell'elemento estratto dalla testa... Non è una coda circoalre, ma è una normale coda... Ultima modifica di cionci : 27-04-2006 alle 18:41. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 384
|
per quello che sò si può fare sia con un vettore ma è molto incasinato ci ho provato e non ce la faccio , poi la si può fare anke dinamicamente e quella l ho già fatta ma è meno veloce nell esecuzione.
mi servirebbe allocarla su un vetore di uno spazio fissato ,ho visto esempi in rete ma non in c. ps non mi interessa molto imparare a fare queste cose le imparerò sul campo di battaglia a suo tempo come tutti quindi se ne avete una già fatta grazie per l aiuto.
__________________
ho concuso felicemente con fabbri00 , flueretty, bidduzzo,WildCat Hendrix, chapi,iasudoru, 791ChessMateK ,agma , farina1 . UNICA esperienza negativa utente da evitare sochmell QUI |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Te l'ho spiegato sopra come farla con un vettore statico...
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Diciamo che l'informazione fondamentale delle strutture è diversa...la coda circolare è una comune coda dove l'informazione sta nell'inserimento e nella rimozione...il fatto che sia circolare è solo una conseguenza della rappresentazione stessa dei dati (cioè, se fosse possibile inserire in testa e rimuovere in coda senza dover sfruttare circolarmente il vettore non esisterebbe nemmeno)...mentre nella lista linkata circolarmente il fattore saliente sta nella circolarità, mentre l'inserimento e la rimozione sono solo un fattore accessorio... |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 357
|
Una coda circolare dinamica non ha senso per definizione
Realizzarla con i vettori statici è molto semplice, basta usare in modo furbo l'operatore % evitando controlli inutili |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Apr 2006
Messaggi: 384
|
già questa potrebbe essere un idea ma non ho capito come .....non è che potete spostare esempi??
__________________
ho concuso felicemente con fabbri00 , flueretty, bidduzzo,WildCat Hendrix, chapi,iasudoru, 791ChessMateK ,agma , farina1 . UNICA esperienza negativa utente da evitare sochmell QUI |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 357
|
qualcosa del genere
void add(char* item) { items[tail] = item; tail = (tail + 1) % count; count++; } char* extract(); { char* s = items[head]; head = (head + 1) % count; count--; retun s; } |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:17.



















