Tietorakenne

Tietorakenne on tietojenkäsittelyssä esiintyvä termi, joka tarkoittaa tapaa säilöä ja käsitellä dataa tietokoneella tyypillisesti tietokoneen muistissa tietokoneohjelman suorituksen aikana. Tiedostoihin tallennetun tiedon järjestämisestä (siirtäminen, pysyvä säilytys) käytetään termiä tiedostomuoto. Säilömistä tai toiselle koneelle siirtämistä varten tietorakenteet on serialisoitava tarkoitukseen sopivassa muodossa.

Taustaa 
 
Algoritmit riippuvat tietorakenteiden suunnittelusta. Tietorakenteen vaihtaminen ei vaikuta algoritmin oikeellisuuteen, mutta se voi tarjota vaihtoehtoja ja vaikuttaa operaatioiden tehokkuuteen, jolloin suorituskyky voi parantua dramaattisesti. 

Matematiikassa muuttujat luokitellaan tiettyjen tärkeiden piirteiden mukaan, josta esimerkkinä jakaminen reaali- ja kompleksilukuihin tai joukkoihin arvoja. Luokittelu on vähintään yhtä tärkeää tietojen käsittelyssä ja muuttujilla, vakioilla, lausekkeilla ja aliohjelmilla on tietty tyyppi. Tyyppien lisäksi yleiskäyttöisen ohjelmointikielen on tarjottava menetelmä koostaa tietoa rakenteisiin. Rakenteet voivat vaihdella yksinkertaisista monimutkaisiin ja ne voivat olla kiinteitä tai dynaamisesti muodostettuja.

Taulukko on yksi tunnetuimmista tietorakenteista koska monissa kielissä kuten Fortran ja ALGOL se on ainoa eksplisiittisesti saatavilla oleva tietorakenne. Taulukko on homogeeninen tietorakenne, joka koostuu komponenteista, jotka ovat kaikki samaa tyyppiä (perustyyppi). Taulukkoa voi käyttää hajasaantina ja jokaiseen elementtiin voi lukea ja kirjoittaa missä tahansa järjestyksessä. Taulukossa yksittäiseen elementtiin viitataan indeksillä, joka voi olla eri tyyppiä kuin taulukon perustyyppi.

Monissa tapauksissa tarvitaan tietojen yhdistelmää esimerkiksi koordinaattijärjestelmä voi vaatia pisteelle kahta numeroa ilmaistuna tai luonnolliseen henkilöön voidaan liittää etu- ja sukunimi, syntymäpäivä ja niin edelleen. Yhdistelmätyypistä käytetään tietojenkäsittelyssä termiä tietue. Eri yhdistelmätyyppejä voi muodostaa kielestä riippuen muun muassa struct tai tuple -tyyppeinä, joissa ensimmäisessä jäsenkentät ovat nimettyjä kun taas jälkimmäisessä ne eivät ole: tämä vaikuttaa tietojen käsittelyn helppouteen.

Joukko on taulukon ja tietueen ohella perustava käsite, joka voi sisältää x kappaletta muun tyyppistä elementtiä.

Tietorakenteita 
 Pino
 Jono
 Pakka
 Rengaspuskuri
 Taulukko
 Linkitetty lista
 Puu
 Hajautustaulu

Spatiaaliset tietorakenteet 
Spatiaalinen tietorakenne on sellainen tietorakenne, jossa määrätyn etäisyysmitan perusteella lähimmän alkion hakeminen on tehokasta. Spatiaalisia tietorakenteita euklidiseen avaruuteen ovat 3D-grafiikassa paljon käytetyt bsp-puu ja kd-puu.

Katso myös 
 Tiedostojärjestelmä
 Luokka (ohjelmointi)

Lähteet

Aiheesta muualla 
 Type Theory

Kirjallisuutta