Wat is een gegevensstructuur?
Een gegevensstructuur is een concept uit de informatica dat verwijst naar een bepaalde methode voor het verzamelen en organiseren van informatie. Alle datastructuren gebruiken informatie over waar een bepaald stuk gegevens zich in het geheugen van een computer bevindt om toegang te krijgen tot die gegevens en deze te verbinden met andere gegevens. Datastructuren brengen een van de vele verschillende soorten relaties tussen afzonderlijke stukjes informatie tot stand. Verschillende soorten gegevensstructuur zijn efficiënter voor verschillende doeleinden, en de moeilijkheid van codering varieert sterk tussen soorten gegevensstructuur.
Arrays behoren tot de eenvoudigste gegevensstructuren, maar zijn desalniettemin zeer krachtige hulpmiddelen voor het organiseren van informatie. In een array worden elementen opeenvolgende geheugenadressen toegewezen, waardoor het geheugenadres van elk item in de array met behulp van eenvoudige wiskundige berekeningen zeer snel kan worden bepaald, een belangrijk voordeel. Arrays kunnen worden opgevat als bestaande in een willekeurig aantal dimensies. Een eendimensionale array kan worden opgevat als een lijst, een tweedimensionale array als een tabel en een driedimensionale array als een kubus van afzonderlijke cellen. Er kunnen ook arrays van meer dan drie dimensies bestaan.
Gekoppelde lijsten zijn een ander eenvoudig maar zeer belangrijk type gegevensstructuur. In een gekoppelde lijst bestaat elk knooppunt uit een variabele die zowel feitelijke gegevens als informatie bevat die het volgende element in de lijst identificeert. Een gekoppelde lijst kan dus worden doorlopen zolang het adres van het eerste knooppunt bekend is. Dit type gegevensstructuur is veelzijdig omdat het zich leent voor dynamische groei, omdat nieuwe knooppunten eenvoudig op elk moment kunnen worden toegewezen. Door de toevoeging van een variabele die de locatie van het vorige knooppunt in de lijst bevat, kan dit type gegevensstructuur in beide richtingen worden doorlopen.
Bomen rangschikken knooppunten hiërarchisch, beginnend met een hoofdknooppunt, en afdalend door meerdere lagen knooppunten totdat alle benodigde gegevens binnen de structuur zijn ondergebracht. Meestal worden de elementen in een boom op een bepaalde manier gesorteerd. Trees kunnen sorteren implementeren en kunnen hierdoor mogelijk veel snellere toegang tot opgeslagen gegevens bieden, omdat elke vertakking hele delen van informatie uit overweging neemt die in een gekoppelde lijst moeten worden gesorteerd.
Hashtabellen worden gebruikt om een geheugenadres te bepalen waarin een bepaald stuk gegevens moet worden opgeslagen door een vergelijking te gebruiken om die gegevens om te zetten in een geheugenadres. Ze kunnen een zeer efficiënte structuur zijn voor het opslaan en ophalen van gegevens uit een array.
Alle gegevensstructuren zijn ontworpen om het aantal instructies dat een computer moet uitvoeren om een bepaald stuk informatie te lokaliseren, te verminderen. Verschillende soorten gegevens lenen zich voor verschillende soorten gegevensstructuren, maar de meeste moderne programmeertalen bieden ondersteuning voor een grote verscheidenheid aan gegevensstructuren of bieden de tools waarmee programmeurs hun eigen gegevensstructuren kunnen coderen.