Tietorakenne on tietojenkäsittelytieteen käsite, joka viittaa tiettyyn menetelmään tietojen keräämiseksi ja järjestämiseksi. Kaikki tietorakenteet käyttävät tietoja siitä, missä tietyt tiedot sijaitsevat tietokoneen muistissa, päästäkseen kyseisiin tietoihin ja liittää ne muihin tietoihin.
Tietorakenteet muodostavat yhden monista erilaisista suhteista yksittäisten tietojen välillä. Eri tyyppiset tietorakenteet ovat tehokkaampia eri tarkoituksiin, ja koodauksen vaikeus vaihtelee suuresti tietorakenteiden välillä.
Taulukot ovat yksinkertaisimpia tietorakenteita, mutta ne ovat kuitenkin erittäin tehokkaita työkaluja tietojen järjestämiseen. Matriisissa elementteille osoitetaan peräkkäisiä muistiosoitteita, jolloin minkä tahansa taulukon kohteen muistiosoite voidaan määrittää hyvin nopeasti yksinkertaisilla matemaattisilla laskutoimituksilla, mikä on keskeinen etu. Taulukoita voidaan kuvitella olemassa oleviksi monessa ulottuvuudessa. Yksiulotteinen taulukko voidaan käsittää luettelona, kaksiulotteinen taulukko taulukkona ja kolmiulotteinen taulukko yksittäisten solujen kuutiona. Yli kolmen ulottuvuuden matriiseja voi myös olla olemassa.
Linkitetyt luettelot ovat toinen yksinkertainen mutta erittäin tärkeä tietorakenne. Linkitetyssä luettelossa jokainen solmu koostuu muuttujasta, joka sisältää sekä todellisia tietoja että tietoja, jotka tunnistavat luettelon seuraavan elementin. Linkitetty luettelo voidaan siis käydä läpi niin kauan kuin ensimmäisen solmun osoite on tiedossa. Tämäntyyppinen tietorakenne on monipuolinen, koska se soveltuu dynaamiseen kasvuun, koska uusia solmuja voidaan helposti määrittää milloin tahansa. Edellisen solmun sijainnin sisältävän muuttujan lisääminen luetteloon mahdollistaa tämän tyyppisen tietorakenteen kulkemisen kumpaankin suuntaan.
Puut järjestävät solmut hierarkkisesti alkaen juurisolmusta ja laskeutuvat useiden solmukerrosten läpi, kunnes kaikki tarvittavat tiedot on mahtuu rakenteeseen. Yleensä puun elementit lajitellaan jollain tavalla. Puut voivat toteuttaa lajittelun ja voivat mahdollisesti tarjota paljon nopeamman pääsyn tallennettuihin tietoihin, koska jokainen haarautuminen eliminoi kokonaiset tiedot, jotka on lajiteltava linkitetyssä luettelossa.
Hash -taulukoita käytetään määrittämään muistiosoite, johon tietty tieto on tallennettava, käyttämällä yhtälöä muuntamaan tiedot muistiosoitteeksi. Ne voivat olla erittäin tehokas rakenne tietojen tallentamiseen ja hakemiseen taulukosta.
Kaikki tietorakenteet on suunniteltu vähentämään käskyjen määrää, jotka tietokoneen on suoritettava tietyn tiedon löytämiseksi. Eri tyyppiset tiedot soveltuvat erityyppisiin tietorakenteisiin, mutta useimmat nykyaikaiset ohjelmointikielet tarjoavat tukea monenlaisille tietorakenteille tai tarjoavat työkalut, joiden avulla ohjelmoijat voivat koodata omia tietorakenteitaan.