Što je struktura podataka?

Struktura podataka je koncept iz računalne znanosti koji se odnosi na određenu metodu prikupljanja i organiziranja informacija. Sve strukture podataka koriste informacije o tome gdje se određeni dio podataka nalazi u memoriji računala kako bi pristupili tim podacima i povezali ih s drugim dijelovima podataka.
Strukture podataka uspostavljaju jednu od mnogih različitih vrsta odnosa između pojedinačnih informacija. Različite vrste strukture podataka učinkovitije su za različite svrhe, a težina kodiranja uvelike varira između vrsta strukture podataka.

Nizovi su među najjednostavnijim strukturama podataka, ali su unatoč tome vrlo moćni alati za organiziranje informacija. U nizu, elementima se dodjeljuju sekvencijalne memorijske adrese, što omogućuje da se memorijska adresa bilo koje stavke u nizu vrlo brzo odredi pomoću jednostavnih matematičkih izračuna, što je ključna prednost. Nizovi se mogu zamisliti kao postojeći u bilo kojem broju dimenzija. Jednodimenzionalni niz može se konceptualizirati kao popis, dvodimenzionalni niz kao tablica, a trodimenzionalni niz kao kocka pojedinačnih ćelija. Mogu postojati i nizovi više od tri dimenzije.

Povezani popisi su još jedna jednostavna, ali vrlo važna vrsta strukture podataka. U povezanom popisu, svaki se čvor sastoji od varijable koja sadrži i stvarne podatke i informacije koje identificiraju sljedeći element na popisu. Povezani popis se stoga može koračati sve dok je poznata adresa prvog čvora. Ova vrsta strukture podataka je svestrana jer je podložna dinamičkom rastu, budući da se novi čvorovi mogu lako dodijeliti u bilo kojem trenutku. Dodavanje varijable koja sadrži lokaciju prethodnog čvora na popisu omogućuje ovu vrstu strukture podataka da se prelazi u bilo kojem smjeru.

Stabla poređaju čvorove hijerarhijski, počevši od korijenskog čvora i spuštajući se kroz više slojeva čvorova dok svi potrebni podaci ne budu smješteni unutar strukture. Obično su elementi unutar stabla sortirani na neki način. Stabla mogu implementirati sortiranje i potencijalno mogu osigurati mnogo brži pristup pohranjenim podacima zbog toga, budući da svako grananje eliminira čitave dijelove informacija iz razmatranja koje bi trebalo sortirati na povezanom popisu.

Hash tablice se koriste za određivanje memorijske adrese u koju se određeni dio podataka treba pohraniti korištenjem jednadžbe za transformaciju tih podataka u memorijsku adresu. Mogu biti vrlo učinkovita struktura za pohranu i dohvaćanje podataka iz niza.

Sve strukture podataka dizajnirane su tako da smanje broj instrukcija koje računalo mora izvršiti kako bi lociralo određenu informaciju. Različite vrste podataka su pogodne za različite vrste strukture podataka, ali većina modernih programskih jezika nudi podršku za široku paletu struktura podataka ili pruža alate koji omogućuju programerima da kodiraju svoje vlastite strukture podataka.