Algoritmai ir duomenų struktūros
Duomenų struktūros
Duomenų struktūra – tai būdas organizuoti ir grupuoti duomenis taip, kad jie sudarytų logišką visumą. Duomenų struktūra gali jungti kelis paprastus duomenų tipus (pvz., sveikus skaičius, simbolius) arba kelias kitas, paprastesnes duomenų struktūras. Tai padeda efektyviau tvarkyti, saugoti ir apdoroti duomenis.
Ankstyvosios duomenų struktūros buvo naudojamos kaip paprastos reikšmių aibės, leidžiančios grupuoti ir tvarkyti duomenis. Tačiau tobulėjant programavimo metodams ir algoritmams, buvo įvestas abstraktusis duomenų tipas (ADT). Abstraktusis duomenų tipas apibrėžia ne tik, kokios rūšies duomenis galima grupuoti, bet ir kokias operacijas galima atlikti su šiais duomenimis. Kitaip tariant, ADT ne tik nurodo, kokie duomenys yra saugomi, bet ir kaip galima jais manipuliuoti (pavyzdžiui, pridėti, pašalinti, rikiuoti duomenis ir kt.). Abstrakčiųjų duomenų tipų naudojimas padėjo sukurti geriau organizuotas ir lankstesnes programas, nes leidžia atskirti duomenų struktūros apibrėžimą nuo konkrečios jos įgyvendinimo detalės.
Dažniausiai naudojamos duomenų struktūros yra šios:- Masyvas (angl. array)
- Dėklas (angl. stack)
- Eilė (angl. queue)
- Dvipusė eilė (angl. double ended queue, arba deque)
- Sąrašas (angl. list)
- Aibė (angl. set)
Java kolekcijų karkasas
Visos išvardintos duomenų struktūros, išskyrus masyvą, Java kalboje įeina į Java kolekcijų karkasą (angl. Java Collections Framework). Šiame karkase abstraktūs duomenų tipai yra realizuoti kaip sąsajos (angl. interface), o struktūriniai duomenų tipai - kaip klasės: