Ik heb de term 'gegevensstructuur' altijd als verwarrend beschouwd. Wat is het in vredesnaam? Zijn het gegevens met een structuur, wat een even dubbelzinnige term is?
Toen ik mijn verbijstering met mijn leeftijdsgenoten deelde, zouden ze snel zeggen: "data met structuur". De aanblik van voldoening op hun gezichten maakte dat ik mezelf in vraag stelde. Ik denk dat dat alles is wat ik nodig had om te weten ...
Uiteindelijk leerde ik het concept van een datastructuur op te lossen met een eenvoudige herformulering van de term 'datastructuur' in 'structuur van data'. In deze context verschuift de aandacht van gegevens (een ding) naar structuur (organisatie). Dit is een subtiel maar enorm belangrijk detail. We richten ons niet met andere woorden op dingen, maar op het proces van het organiseren van dingen.
Laten we ons voorstellen dat de dingen die we bespreken boeken zijn. Wat is logischer: boeken met structuur of organisatie van boeken? Naar mijn mening is dit laatste gemakkelijker te begrijpen. De focus ligt juist op organisatie - niet op boeken.
Boeken, vergelijkbaar met gegevens, kunnen op verschillende manieren worden georganiseerd. Laten we ons voorstellen dat we 20 boeken hebben. Hoe organiseren we ze??
Als we snel een boek willen vinden als we er een verwijzing naar nodig hebben, kunnen we al onze boeken in alfabetische volgorde op een plank plaatsen; elke keer dat we een boek nodig hebben, kunnen we het vinden met behulp van onze kennis dat boeken alfabetisch worden opgeslagen.
Als we al onze boeken in een specifieke volgorde willen lezen, misschien van het eerste boek dat we in onze collectie hebben ingevoegd tot het laatste boek dat we invoegen, dan zouden we onze boeken in volgorde bij die volgorde willen plaatsen; bovendien willen we een beperking opleggen om onze boeken alleen in die volgorde te lezen.
Als we de opslagruimte missen om al onze boeken in dezelfde ruimte te bewaren, willen we misschien onze boeken zo ordenen dat we ze snel kunnen vinden. Hoe zit het met het plaatsen van onze 20 boeken door ons hele huis, en dan het creëren van een lijst met twee kolommen: de eerste kolom geeft de titel van een boek; de tweede kolom geeft de locatie van een boek weer.
Op dit moment moet duidelijk worden dat er veel manieren zijn om boeken te ordenen; bovendien zijn er veel verschillende soorten datastructuren. De datastructuur die we gebruiken bij webontwikkeling, net zoals ons voorbeeld met boeken, is afhankelijk van onze behoeften.
Nu we begrijpen dat er veel soorten gegevensstructuren zijn voor verschillende soorten behoeften, moeten we begrijpen dat we deze gegevensstructuren kunnen gebruiken en maken zonder een esoterische kennis van codering. Wij allen, zelfs degenen zonder neckbeards, kunnen datastructuren maken. Alles wat we nodig hebben is een goed begrip van alledaagse JavaScript-primitieve typen (bijvoorbeeld Boolean) en referentietypen (bijvoorbeeld Object).
Als dit moeilijk voorstelbaar lijkt, maak je geen zorgen. Vroeger dacht ik aan een Set, een soort datastructuur, als slechts een Set! Oh, hoe naïef, Cho. Een set is geen ding; een set is de naam die is toegewezen aan een bepaalde manier om gegevens te organiseren. Wat even belangrijk is, een Set is gemaakt met behulp van objecten.
Deze reeks over gegevensstructuren met JavaScript onthult dat gegevensstructuren niet als ondoorzichtig en mysterieus moeten worden beschouwd. Integendeel, ze worden gebruikt om ons leven gemakkelijker te maken. Ik zal proberen dit punt te versterken met de introductie van een of twee zeer vergelijkbare datastructuren in elk van de artikelen in deze serie.
Omdat er te veel gegevensstructuren zijn om adequaat te worden behandeld in deze reeks, zullen we slechts een paar maar de meest gebruikelijke gegevensstructuren verkennen:
Wanneer we deze serie voltooien, hoop ik dat je niet alleen zult leren hoe je deze gemeenschappelijke gegevensstructuren kunt implementeren, maar je zult ook zien dat ze overal om ons heen worden gebruikt. Wanneer u zich realiseert dat deze gegevensstructuren een zeer specifiek en nuttig doel dienen bij het organiseren van alle gegevens, verhoogt u uw waardering voor hen. U zult anders gaan nadenken over uw gegevens en hoe u deze ook organiseert.