En datastruktur er en softwareenhed, der giver dig mulighed for at lagre og behandle den samme type og/eller logisk relaterede data . Til tilføjelse, søgning, ændring og sletning af data giver datastrukturen et bestemt sæt funktioner, der udgør dens grænseflade.
Udtrykket "datastruktur" kan have flere tætte, men ikke desto mindre forskellige betydninger [1] :
Datastrukturer dannes ved hjælp af datatyper , referencer og operationer på dem i det valgte programmeringssprog .
Forskellige slags datastrukturer passer til forskellige applikationer; nogle af dem har en snæver specialisering til bestemte opgaver. For eksempel er B-træer normalt velegnede til at oprette databaser , mens hashtabeller bruges allestedsnærværende til at oprette forskellige slags ordbøger, for eksempel til at kortlægge domænenavne til computerens internetadresser .
I softwareudvikling afhænger kompleksiteten af implementeringen og kvaliteten af programmernes arbejde væsentligt af det korrekte valg af datastrukturer. Denne forståelse gav anledning til formelle udviklingsmetoder og programmeringssprog, der satte datastrukturer, ikke algoritmer, på forkant med softwarearkitekturen. De fleste af disse sprog har en form for modularitet , der gør det muligt at genbruge datastrukturer sikkert i forskellige applikationer. Objektorienterede sprog som Java , C# og C++ er eksempler på denne tilgang.
Mange klassiske datastrukturer findes i standardbibliotekerne for programmeringssprog eller direkte indbygget i programmeringssprog. For eksempel er hash-tabeldatastrukturen indbygget i programmeringssprogene Lua , Perl , Python , Ruby , Tcl m.fl. C++ standard skabelonbiblioteket (STL) er meget brugt.
De grundlæggende byggesten for de fleste datastrukturer er arrays , poster ( structi C og Pascal ), diskriminerede fagforeninger ( recordi C) og referencer . For eksempel kan en dobbelt linket liste bygges ved hjælp af indgange og links, hvor hver indgang (node) vil gemme data og links til "venstre" og "højre" noder. union
At designe datastrukturer til funktionelle sprog er vanskeligere end for imperative sprog af mindst to grunde [1] :
Datastrukturer | |
---|---|
Lister | |
Træer | |
Tæller | |
Andet |
Datatyper | |
---|---|
Ufortolkelig | |
Numerisk | |
Tekst | |
Reference | |
Sammensatte | |
abstrakt | |
Andet | |
relaterede emner |