Tietorakenne on ohjelmistoyksikkö, jonka avulla voit tallentaa ja käsitellä samantyyppisiä ja/tai loogisesti liittyviä tietoja . Tietojen lisäämistä, etsimistä, muuttamista ja poistamista varten tietorakenne tarjoaa tietyn joukon toimintoja, jotka muodostavat sen käyttöliittymän.
Termillä "tietorakenne" voi olla useita läheisiä, mutta kuitenkin erilaisia merkityksiä [1] :
Tietorakenteet muodostetaan käyttämällä tietotyyppejä , viittauksia ja niihin liittyviä operaatioita valitulla ohjelmointikielellä .
Erilaiset tietorakenteet sopivat erilaisiin sovelluksiin; Jotkut heistä ovat erikoistuneet tiettyihin tehtäviin. Esimerkiksi B-puut sopivat yleensä tietokantojen luomiseen , kun taas hash-taulukoita käytetään kaikkialla erilaisten sanakirjojen luomiseen, esimerkiksi verkkotunnusten yhdistämiseen tietokoneiden Internet-osoitteisiin .
Ohjelmistokehityksessä toteutuksen monimutkaisuus ja ohjelmien työn laatu riippuvat merkittävästi tietorakenteiden oikeasta valinnasta. Tämä ymmärrys johti muodollisiin kehitysmenetelmiin ja ohjelmointikieliin, jotka asettivat tietorakenteet, eivät algoritmit, ohjelmistoarkkitehtuurin eturintamaan. Useimmissa näistä kielistä on jonkinlainen modulaarisuus , jonka avulla tietorakenteita voidaan käyttää turvallisesti uudelleen eri sovelluksissa. Oliopohjaiset kielet , kuten Java , C# ja C++ , ovat esimerkkejä tästä lähestymistavasta.
Monet klassiset tietorakenteet tarjotaan ohjelmointikielten vakiokirjastoissa tai suoraan ohjelmointikieliin. Esimerkiksi hash-taulukon tietorakenne on sisäänrakennettu ohjelmointikieliin Lua , Perl , Python , Ruby , Tcl jne. C++- standardimallikirjasto (STL) on laajalti käytössä.
Useimpien tietorakenteiden perustavanlaatuisia rakennuspalikoita ovat taulukot , tietueet ( Cstruct : ssä ja Pascalissa ), erotetut liitot ( C : ssä) ja viittaukset . Esimerkiksi kaksoislinkitetty lista voidaan rakentaa käyttämällä merkintöjä ja linkkejä, joissa jokainen merkintä (solmu) tallentaa tiedot ja linkit "vasemmalle" ja "oikealle" solmulle. recordunion
Tietorakenteiden suunnittelu toiminnallisille kielille on vaikeampaa kuin pakollisille kielille ainakin kahdesta syystä [1] :
Tietorakenteet | |
---|---|
Luettelot | |
puut | |
Laskee | |
muu |
Tietotyypit | |
---|---|
Käsittämätön | |
Numeerinen | |
Teksti | |
Viite | |
Komposiitti | |
abstrakti | |
muu | |
liittyvät aiheet |