Strutture Dati e Algoritmi: Code
Ultimamente, abbiamo visto la struttura dei dati dello stack e come implementare la nostra versione degli stack utilizzando JavaScript. In questo articolo, vedremo un altro tipo di struttura dati che va nello stesso bucket ed è spesso menzionata accanto agli stack. Questa volta parleremo di code .
Code: concetti
Le code sono importanti quanto le pile nel mondo dell'informatica. Sono usati in molte situazioni diverse. Potrei essere in grado di affermare che sono un must in qualsiasi sistema grande e grande che richiede molta comunicazione, pianificazione e definizione delle priorità.
# Cosa sono le code?
Una coda è una struttura di dati lineare in cui gli elementi sono disposti uno dopo l'altro. Allo stesso modo degli stack, hanno alcune restrizioni quando si tratta di come vengono effettuate le operazioni (inserimento ed eliminazione) su di essi. Nelle code, le operazioni vengono eseguite su due estremità anziché su un'unica estremità come nel caso degli stack. Una coda funziona secondo il principio del First In First Out (FIFO). Se volessimo illustrare le code con un esempio della nostra vita quotidiana, potremmo guardare la fila di persone in un negozio Starbucks in attesa del loro caffè. Il primo che arriva è il primo ad essere servito e così via...
Quindi, quando qualcuno viene a comprare un caffè, va in fondo alla fila. In termini di strutture dati, diremmo che ci stiamo accodando alla coda. In altre parole, stiamo inserendo un nuovo elemento in fondo alla coda. Se invece viene servito quello in prima fila, allora lascerà il posto a quello che segue e così via. Di nuovo, in termini di strutture di dati, diremmo che stiamo rimuovendo dalla coda un elemento o stiamo rimuovendo un elemento dall'inizio della coda.
# Perché dovresti usare le code?
Non riesco a contare i diversi scenari in cui le code sono adatte più di qualsiasi altro tipo di struttura dati. Tuttavia, elencherei due motivi principali che potrebbero darti un'idea della possibilità che tu debba utilizzare le code per una situazione particolare.
- In attesa…
2. Un ordine equo...
Se il problema che stai risolvendo vuole che tu garantisca che il primo che arriva sia il primo ad essere servito, allora coda per i soccorsi. Il fatto che le code seguano il principio FIFO garantisce un ordine equo.
Code: implementazione in JavaScript
Ora implementeremo la nostra versione personalizzata delle code utilizzando JavaScript. Nell'ultimo articolo, abbiamo accennato al fatto che gli stack possono essere implementati utilizzando array o elenchi collegati a seconda delle esigenze. Tuttavia, per la struttura dei dati della coda, l'utilizzo di un elenco collegato sarebbe comunque un approccio più saggio. Come mai?
In poche parole, se utilizziamo gli array, l' operazione di rimozione dalla coda, ad esempio, richiederebbe lo spostamento dell'array ogni volta che rimuoviamo un elemento dalla coda. Ciò richiederebbe molto tempo. Pertanto, aumenta la complessità temporale della soluzione. Inoltre, supponendo che non eseguirai alcuno spostamento dopo aver rimosso dalla coda un elemento, ciò può comportare uno spreco di memoria perché stai lasciando spazi vuoti nell'array. Ancora una volta, questo porta ad un aumento della complessità dello spazio della tua soluzione.
Ora, facciamolo usando invece le liste collegate...
Non abbiamo ancora finito... Questo pezzo di codice necessita di alcuni miglioramenti...
Code: ora tocca a te...
# Compito uno
Usa il tuo linguaggio di programmazione preferito per aggiungere una nuova operazione back() per visualizzare il valore in fondo alla coda.
# Compito due
Abbiamo bisogno di un'operazione per stampare la coda, puoi farlo per noi, per favore? Tuttavia, usa il tuo linguaggio di programmazione preferito...
Aspetta un secondo, per favore! Prima di partire, se vuoi, mettiamoci in contatto...
- Su YouTube
- Su Linkedin
- Su Twitter

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































