Hvad er en datastruktur?
En datastruktur er et koncept fra datalogi, der refererer til en bestemt metode til indsamling og organisering af information. Alle datastrukturer bruger information om, hvor et givet stykke data er placeret i hukommelsen på en computer for at få adgang til disse data og forbinde dem til andre stykker data. Datastrukturer etablerer en af mange forskellige slags forhold mellem individuelle informationsstykker. Forskellige typer datastruktur er mere effektive til forskellige formål, og vanskeligheden ved kodning varierer vidt mellem typer af datastrukturer.
Arrays er blandt de enkleste datastrukturer, men er ikke desto mindre meget kraftfulde værktøjer til organisering af information. I en matrix tildeles elementer sekventielle hukommelsesadresser, hvilket tillader, at hukommelsesadressen til ethvert element i arrayet bestemmes meget hurtigt ved hjælp af enkle matematiske beregninger, en nøglefordel. Arrays kan opfattes som eksisterende i et hvilket som helst antal dimensioner. En endimensionel matrix kan være konceptualiseret som en liste, en to-dimensionel array som en tabel og en tredimensionel matrix som en terning af individuelle celler. Der kan også findes arrays med mere end tre dimensioner.
Tilknyttede lister er en anden enkel, men meget vigtig type datastruktur. I en sammenkoblet liste består hver node af en variabel, der indeholder både faktiske data og information, der identificerer det næste element på listen. En linket liste kan således gennemgås, så længe adressen på den første knude er kendt. Denne type datastruktur er alsidig, fordi den egner sig til dynamisk vækst, da nye noder let kan tildeles til enhver tid. Tilføjelsen af en variabel, der indeholder placeringen af den forrige knude på listen, gør det muligt at krydse denne type datastruktur i begge retninger.
Træer ordner knudepunkter hierarkisk, begynder med en rodnode og falder gennem flere lag af knudepunkter, indtil alle nødvendige data er tilpasset strukturen. Elementerne i et træ sorteres typisk på en eller anden måde. Træer kan implementere sortering og kan potentielt give meget hurtigere adgang til lagrede data på grund af dette, da hver forgrening eliminerer hele informationsskår fra overvejelse, som ville være nødt til at blive sorteret igennem i en linket liste.
Hash-tabeller bruges til at bestemme en hukommelsesadresse, hvori et givet stykke data skal gemmes ved hjælp af en ligning til at omdanne disse data til en hukommelsesadresse. De kan være en meget effektiv struktur til lagring og hentning af data fra en matrix.
Alle datastrukturer er designet til at reducere antallet af instruktioner, som en computer skal udføre for at finde et bestemt stykke information. Forskellige typer data egner sig til forskellige typer datastruktur, men de fleste moderne programmeringssprog tilbyder støtte til en lang række datastrukturer eller giver værktøjer til at give programmerere mulighed for at kode deres egne datastrukturer.