Datastructuren stellen een collectie van data voor die nog kan veranderen doorheen de tijd. In een datastructuur kan je bijvoorbeeld elementen toevoegen, elementen verplaatsen of elementen verwijderen. Je kan ook de elementen zelf aanpassen. Het aantal elementen in een datastructuur ligt niet vast.

👀 Voorbeeld - Voldoende water drinken

waterfles

Filiberke denkt aan zijn gezondheid: hij weet hoe belangrijk het is om voldoende water te drinken. Hij houdt per dag bij hoeveel glazen water hij heeft gedronken:

ma: 4, di: 6, wo: 7, do: 6, vr: 8, za: 5, zo: 7

Om dit digitaal bij te houden gebruikt hij een datastructuur, zodat hij dagelijks een element kan toevoegen. Hij heeft dit al een week bijgehouden en zal morgen (maandag) een nieuwe waarde toevoegen.

In het geheugen wordt deze datastructuur opgeslagen in opeenvolgende cellen, op een willekeurige plaats.

geheugenmodel_water

🧠 Denkoefening - Water terugvinden

Welk geheugenadres moeten we onthouden om dit overzicht terug te vinden in het geheugen?

❗ Begrip - Datastructuur

Een datastructuur is een samenstelling van nul, een of meerdere elementen. Je kan een datastructuur wijzigen, bijvoorbeeld door elementen toe te voegen, te veranderen of te verwijderen.

👀 Voorbeeld - Missverkiezing

happy

Jaarlijks worden er missverkiezingen gehouden. De vorige winnaressen worden bijgehouden in een tabel, maar jaar na jaar komt hier een nieuwe miss bij.

Jaar     Winnares
2023     Emilie Vansteenkiste
2022     Chayenne Van Aarle
2021     Kedist Deltour
2020     Celine Van Ouytsel

Indien we de winnaressen van Miss België digitaal willen bijhouden, moeten we een datastructuur gebruiken, omdat die kan uitbreiden. Indien we de voornamen van de winnaressen opslaan in het geheugen ziet dat er als volgt uit:

geheugenmodel_misses

🤔 Huh? - Waarom plaatsen we de namen niet achter elkaar?

De elementen in de datastructuur van het vorige voorbeeld zijn van het type string. Een string wordt opgesplitst in zijn opeenvolgende karakters. Indien we de verschillende strings achter elkaar zouden plakken is het niet duidelijk wanneer er een nieuwe string begint.

Daarom slaan we elke string apart op in het geheugen en wordt de datastructuur opgeslagen als een opeenvolging van geheugenadressen die wijzen naar het begin van de juiste string.

scissors

🧠 Denkoefening - Miss terugvinden

Welk geheugenadres moeten we onthouden om de lijst met winnaressen terug te vinden in het geheugen?

🧐 Wist je dat…

… om het einde van een string aan te duiden er een eindmarkering wordt gebruikt? Dit zorgt ervoor dat je nooit per ongeluk twee strings die na elkaar in het geheugen staan, als één lange string leest. In Dodona gebruiken we een vereenvoudigde versie van het geheugen van de computer en geven we die eindmarkering niet weer.