Vad är en datastruktur?

En datastruktur är ett begrepp från datavetenskap som hänvisar till en viss metod för att samla in och organisera information. Alla datastrukturer använder information om var en given databit finns i minnet på en dator för att komma åt den datan och koppla den till andra datastycken.
Datastrukturer etablerar en av många olika typer av relationer mellan enskilda informationsbitar. Olika typer av datastrukturer är mer effektiva för olika ändamål, och svårigheten att koda varierar kraftigt mellan olika typer av datastruktur.

Arrayer är bland de enklaste datastrukturerna men är ändå mycket kraftfulla verktyg för att organisera information. I en array tilldelas element sekventiella minnesadresser, vilket gör att minnesadressen för varje objekt i arrayen kan bestämmas mycket snabbt med hjälp av enkla matematiska beräkningar, en viktig fördel. Matriser kan uppfattas som existerande i valfritt antal dimensioner. En endimensionell array kan konceptualiseras som en lista, en tvådimensionell array som en tabell och en tredimensionell array som en kub av individuella celler. Matriser med mer än tre dimensioner kan också finnas.

Länkade listor är en annan enkel men mycket viktig typ av datastruktur. I en länkad lista består varje nod av en variabel som innehåller både faktiska data och information som identifierar nästa element i listan. En länkad lista kan således stegas igenom så länge som adressen till den första noden är känd. Denna typ av datastruktur är mångsidig eftersom den lämpar sig för dynamisk tillväxt, eftersom nya noder lätt kan tilldelas när som helst. Tillägget av en variabel som innehåller platsen för den föregående noden i listan gör att denna typ av datastruktur kan passeras i båda riktningarna.

Träd ordnar noder hierarkiskt, börjar med en rotnod och går ner genom flera lager av noder tills all nödvändig data har inrymts i strukturen. Vanligtvis sorteras elementen i ett träd på något sätt. Träd kan implementera sortering och kan potentiellt ge mycket snabbare åtkomst till lagrad data på grund av detta, eftersom varje förgrening eliminerar hela delar av information från övervägande som skulle behöva sorteras igenom i en länkad lista.

Hash-tabeller används för att bestämma en minnesadress i vilken en given databit ska lagras genom att använda en ekvation för att omvandla denna data till en minnesadress. De kan vara en mycket effektiv struktur för att lagra och hämta data från en array.

Alla datastrukturer är utformade för att minska antalet instruktioner som en dator måste utföra för att hitta en viss information. Olika typer av data lämpar sig för olika typer av datastrukturer, men de flesta moderna programmeringsspråk erbjuder stöd för en mängd olika datastrukturer, eller tillhandahåller verktyg för att tillåta programmerare att koda sina egna datastrukturer.