Structurile de date cu JavaScript Ce este o structură de date?

Ce veți crea

Ce este structura datelor??

Întotdeauna am considerat că termenul "structură de date" este confuz. Ce naiba e asta? Sunt date cu structură, care este un termen la fel de ambiguu? 

Când obișnuiam să-mi împărtășesc confuziile cu colegii mei, ei aveau să citească rapid "date cu structură". Aspectul de satisfacție pe chipul lor mă obișnuia să mă întreb. Cred că tot ce trebuia să știu ...  

În cele din urmă, am învățat să rezolv conceptul de structură de date cu o simplă reformulare a termenului "structură de date" la "structura datelor". În acest context, accentul se schimbă de la date (lucru) la structură (organizare). Acesta este un detaliu subtil, dar foarte important. Nu ne concentrăm, cu alte cuvinte, asupra lucrurilor, ci asupra procesului de organizare a lucrurilor.

Să ne imaginăm că lucrurile pe care le discutăm sunt cărți. Ce face mai mult sens: cărți cu structură sau organizare de cărți? În opinia mea, acesta din urmă este mai ușor de înțeles. Accentul este pus pe organizație - nu pe cărți. 

Diferite tipuri de structuri de date

Cărțile, asemănătoare datelor, pot fi organizate în mai multe moduri. Să imaginăm că avem 20 de cărți. Cum le organizăm?? 

Dacă vrem să găsim rapid o carte când avem nevoie de o referire la ea, putem introduce toate cărțile în ordine alfabetică pe un raft; de fiecare dată când avem nevoie de o carte, o putem găsi utilizând cunoștințele noastre că cărțile sunt stocate în ordine alfabetică. 

Dacă vrem să citim toate cărțile noastre într-o anumită ordine, poate de la prima carte pe care am inserat-o în colecția noastră până la ultima carte pe care o inserăm, atunci ar trebui să plasăm cărțile în ordine cu această comandă; în plus, dorim să impunem o restricție de citire a cărților noastre numai în acea ordine. 

Dacă nu avem spațiul de depozitare pentru a păstra toate cărțile noastre în aceeași cameră, poate că vrem să ne organizăm cărțile într-un mod în care să le găsim rapid. Ce zici de plasarea celor 20 de cărți în casa noastră și apoi de a crea o listă cu două coloane: prima coloană afișează titlul unei cărți; a doua coloană afișează locația unei cărți. 

În acest moment, ar trebui să devină clar că există multe modalități de organizare a cărților; în plus, există multe tipuri diferite de structuri de date. Structura datelor pe care le folosim în dezvoltarea web-ului, la fel ca exemplul nostru cu cărți, depinde de nevoile noastre. 

Acum, că înțelegem că există mai multe tipuri de structuri de date pentru diferite tipuri de nevoi, trebuie să înțelegem că putem folosi și crea aceste structuri de date fără o cunoaștere esoterică a codării. Toți, chiar și cei fără gât, pot crea structuri de date. Tot ce avem nevoie este o înțelegere a tipurilor de primitive JavaScript de zi cu zi (de exemplu, boolean) și a tipurilor de referință (de exemplu Object).

Dacă acest lucru pare greu de imaginat, nu vă faceți griji. M-am gândit la un Set, care este un tip de structură de date, ca doar un set! Oh, cât de naiv, Cho. Un set nu este un lucru; a Set este numele atribuit unui anumit mod de organizare a datelor. Ce este la fel de important, un set este creat folosind obiecte.  

Scopul

Această serie pe structuri de date cu JavaScript va arăta că structurile de date nu sunt menite a fi opace și misterioase. Mai degrabă, ele sunt folosite pentru a ne ușura viața. Voi încerca să întăresc acest punct prin introducerea unei sau a două structuri de date foarte asemănătoare în fiecare dintre articolele din această serie. 

Contur

Deoarece există prea multe structuri de date care să fie acoperite în mod adecvat în această serie, vom explora doar câteva, dar cele mai comune structuri de date: 

  • Stack și coadă
  • Listă singulară și listă dublă
  • Arbore (căutare în profunzime și căutare primă)

Concluzie

Când finalizăm această serie, sper că veți învăța nu numai cum să implementați aceste structuri comune de date, dar veți vedea, de asemenea, că acestea sunt utilizate în jurul nostru. Când vă dați seama că aceste structuri de date servesc un scop foarte specific și util în organizarea tuturor datelor, vă veți ridica aprecierea pentru ei. Veți începe să vă gândiți diferit la datele dvs. și la modul în care o organizați.

Cod