Strutture dati con JavaScript cos'è una struttura dati?

Cosa starai creando

Cos'è una struttura dati?

Ho sempre considerato il termine "struttura dati" confuso. Che diamine è? Sono dati con struttura, che è un termine ugualmente ambiguo? 

Quando condividevo il mio smarrimento con i miei coetanei, avrebbero rapidamente battuto "dati con struttura". L'aspetto di soddisfazione sui loro volti mi faceva interrogare. Immagino sia tutto ciò che avevo bisogno di sapere ...  

Alla fine, ho imparato a risolvere il concetto di una struttura dati con una semplice riformulazione del termine "struttura dei dati" in "struttura dei dati". In questo contesto, l'attenzione si sposta dai dati (una cosa) alla struttura (organizzazione). Questo è un dettaglio sottile ma immensamente importante. Non ci stiamo concentrando, in altre parole, sulle cose, ma sul processo di organizzazione delle cose.

Immaginiamo che le cose di cui stiamo discutendo siano libri. Cosa ha più senso: libri con struttura o organizzazione di libri? Secondo me, quest'ultimo è più facile da comprendere. L'attenzione è rivolta correttamente all'organizzazione, non ai libri. 

Diversi tipi di strutture dati

I libri, simili ai dati, possono essere organizzati in molti modi. Facciamo l'idea che abbiamo 20 libri. Come li organizziamo? 

Se vogliamo trovare rapidamente un libro quando abbiamo bisogno di un riferimento, possiamo inserire tutti i nostri libri in ordine alfabetico su uno scaffale; ogni volta che abbiamo bisogno di un libro, possiamo trovarlo usando la nostra consapevolezza che i libri sono memorizzati in ordine alfabetico. 

Se vogliamo leggere tutti i nostri libri in un ordine specifico, forse dal primo libro che abbiamo inserito nella nostra collezione fino all'ultimo libro che inseriamo, vorremmo mettere i nostri libri in sequenza con quell'ordine; inoltre, vogliamo imporre una restrizione di leggere i nostri libri solo in questo ordine. 

Se ci manca lo spazio di archiviazione per conservare tutti i nostri libri nella stessa stanza, forse vogliamo organizzare i nostri libri in un modo in cui possiamo trovarli rapidamente. Che ne dici di mettere i nostri 20 libri in tutta la casa, e quindi creare una lista con due colonne: la prima colonna elenca il titolo di un libro; la seconda colonna elenca la posizione di un libro. 

In questo momento, dovrebbe essere chiaro che ci sono molti modi per organizzare i libri; inoltre, ci sono molti diversi tipi di strutture dati. La struttura dati che utilizziamo nello sviluppo web, proprio come il nostro esempio con i libri, dipende dalle nostre esigenze. 

Ora che comprendiamo che esistono molti tipi di strutture di dati per diversi tipi di esigenze, dobbiamo capire che possiamo utilizzare e creare queste strutture di dati senza una conoscenza esoterica della codifica. Tutti noi, anche quelli senza nuca, possiamo creare strutture dati. Tutto ciò di cui abbiamo bisogno è una comprensione dei tipi primitivi di JavaScript giornalieri (ad esempio Boolean) e dei tipi di riferimento (ad es. Object).

Se questo sembra difficile da immaginare, non preoccuparti. Ero solito pensare a un Set, che è un tipo di struttura dati, come un Set! Oh, che ingenuo, Cho. Un set non è una cosa; un Set è il nome assegnato a un particolare modo di organizzare i dati. Ciò che è altrettanto importante, un Set è creato usando oggetti.  

L'obiettivo. il gol

Questa serie su Strutture dati con JavaScript rivelerà che le strutture dati non sono pensate per essere opache e misteriose. Piuttosto, sono usati per rendere più facile la nostra vita. Cercherò di rafforzare questo punto con l'introduzione di una o due strutture dati molto simili in ciascuno degli articoli di questa serie. 

Schema

Poiché ci sono troppe strutture dati per essere adeguatamente trattate in questa serie, esploreremo solo alcune delle strutture dati più comuni: 

  • Stack e coda
  • Elenco collegato singolarmente e elenco collegato dobabilmente
  • Albero (ricerca per profondità e ricerca per ampiezza)

Conclusione

Quando completeremo questa serie, spero che non solo imparerai come implementare queste strutture di dati comuni, ma vedrai che vengono utilizzate tutt'attorno a noi. Quando ti rendi conto che queste strutture dati hanno uno scopo molto specifico e utile nell'organizzazione di tutti i dati, aumenterai il tuo apprezzamento per loro. Inizierai a pensare in modo diverso ai tuoi dati e a come li organizzi.