Jeg har alltid vurdert begrepet "datastruktur" for å være forvirrende. Hva pokker er det? Er det data med struktur, som er en like tvetydig periode?
Da jeg pleide å dele min forvirring med mine kolleger, ville de raskt quip, "data med struktur". Utseendet til tilfredshet på ansiktene deres pleide å gjøre meg til å stille meg spørsmål. Jeg antar det er alt jeg trengte å vite ...
Til slutt lærte jeg å løse begrepet datastruktur med en enkel omformulering av begrepet "datastruktur" til "struktur av data". I denne sammenheng skifter fokus fra data (en ting) til struktur (organisasjon). Dette er en subtil men uhyre viktig detalj. Vi fokuserer ikke med andre ord på ting, men på prosessen med å organisere ting.
La oss forestille oss at de tingene vi diskuterer er bøker. Hva gir mer mening: bøker med struktur eller organisering av bøker? Etter min mening er sistnevnte lettere å forstå. Fokuset er riktig på organisasjon-ikke bøker.
Bøker som ligner på data, kan organiseres på mange måter. La oss se at vi har 20 bøker. Hvordan organiserer vi dem?
Hvis vi raskt vil finne en bok når vi trenger referanse til det, kan vi sette alle bøkene våre i alfabetisk rekkefølge på en hylle; hver gang vi trenger en bok, kan vi finne det ved å bruke vår kunnskap om at bøker lagres alfabetisk.
Hvis vi ønsker å lese alle våre bøker i en bestemt rekkefølge, kanskje fra den første boken vi har satt inn i vår samling til den siste boken vi legger inn, vil vi legge inn våre bøker i en rekkefølge med den ordren; I tillegg ønsker vi å pålegge en begrensning for å lese våre bøker i den samme rekkefølge.
Hvis vi mangler lagringsplassen for å holde alle bøkene våre i samme rom, kan vi kanskje organisere våre bøker på en måte der vi raskt kan finne dem. Hva med å plassere våre 20 bøker i hele huset vårt, og deretter lage en liste med to kolonner: Den første kolonnen viser en boks tittel; Den andre kolonnen viser en boks plassering.
I dette øyeblikk bør det bli klart at det er mange måter å organisere bøker på; Dessuten er det mange forskjellige typer datastrukturer. Datastrukturen vi bruker i webutvikling, akkurat som vårt eksempel med bøker, avhenger av våre behov.
Nå som vi forstår at det finnes mange typer datastrukturer for ulike typer behov, må vi forstå at vi kan utnytte og lage disse datastrukturer uten esoterisk kunnskap om koding. Vi alle, selv de som ikke har nakkestøtter, kan lage datastrukturer. Alt vi trenger er en forståelse av hverdagens JavaScript-primitive typer (for eksempel boolsk) og referansetyper (for eksempel Objekt).
Hvis dette virker vanskelig å forestille seg, ikke bekymre deg. Jeg pleide å tenke på et sett, som er en type datastruktur, som bare et sett! Oh, så naiv, Cho. Et sett er ikke noe; Et sett er navnet tildelt til en bestemt måte å organisere data på. Hva er like viktig, et sett er opprettet ved hjelp av objekter.
Denne serien på datastrukturer med JavaScript vil avsløre at datastrukturer ikke er ment å være ugjennomsiktige og mystiske. Snarere er de vant til å gjøre livet enklere. Jeg vil forsøke å styrke dette punktet med innføring av en eller to svært liknende datastrukturer i hver av artiklene i denne serien.
Siden det er for mange datastrukturer som skal dekkes tilstrekkelig i denne serien, vil vi utforske bare noen få, men de vanligste datastrukturene:
Når vi fullfører denne serien, håper jeg at du ikke bare lærer å implementere disse vanlige datastrukturene, men du vil også se at de brukes rundt oss. Når du innser at disse datastrukturene tjener en svært spesifikk og nyttig formål i å organisere all data, vil du heve din takknemlighet for dem. Du begynner å tenke annerledes på dine data og hvordan du organiserer det også.