Professional Documents
Culture Documents
Algoritmi
Algoritmi
Strukture podataka se klasifikuju na više načina, a ovde će se navesti samo neke klasifikacije.
Prema nivou apstrakcije strukture podataka se dele na:
Logičke strukture podataka i
Fizičke strukture podataka.
Prema mestu memorisanja strukture se dele na:
Operativne strukture ( strukture podataka u operativnoj memoriji ) i
Strukture podataka na masovnoj memoriji.
Prema tipu relacija strukture podataka se dele na:
Linearne strukture,
Strukture tipa stabla i
Mrežne strukture.
U praksi se najčešće susreću slučajevi struktura podataka sa jednom jedinom relacijom, a i
strukture sa više relacija mogu se posmatrati kao skup struktura sa istim elementima i
jednom relacijom, te ćemo se zadržati na strukturi oblika ( S,r ).
Posmatrana kao uređeni par struktura podataka ne vodi računa o načinu smeštanja u
memoriju već samo o (tzv. logičkim) vezama između elemenata, te iz tog razloga nosi naziv
logička struktura podataka. Fizička struktura podataka predstavlja konkretnu strukturu
onako kako je ona smeštena u memoriju. Logička i fizička struktura po pravilu nisu istovetne.
Podela struktura podataka po mestu nalaženja vrši se iz razloga što je problem obrade
podataka, u slučaju kada su podaci u operativnoj memoriji potpuno različiti od problema
obrade podataka kada se podaci nalaze u masovnoj memoriji. Količina podataka u
operativnoj memoriji je mnogostruko manja od količine podataka u masovnoj memoriji.
Takođe, način pristupa podacima u operativnoj memoriji je suštinski različit od načina
pristupa podacima u masovnoj memoriji.
U slučaju klasifikacije struktura podataka prema tipu relacija, kao model strukture podataka
posmatra se diraf ( orentisani graf ): ( X , U )
gde je :
X skup čvorova digrafa koji odgovara elementima strukture podataka,
U skup grana koje predstavljaju navedenu binarnu relaciju u skupu X.
Linearnu strukturu podataka opisuje digraf ( X , U ) čiji se čvorovi mogu rasporediti u niz:
x1, x2, ... , xn tako da skup grana U prestavljaju grane: (xi, xi+1), i=1, 2, ... , (n-1).
Ako se navedenom skupu grana priključi i grana (xn, x1) onda se dobija ciklička struktura
podataka.
Struktura tipa stablo ima tu osobinu da svaki čvor, osim jednog, ima tačno jednog
predhodnika. Čvorovi koji nemaju sledbenika nazivaju se listovi. Stablo kod kojeg svaki čvor,
osim listova, ima najviše dva sledbenika naziva se binarno stablo.
Mrežna struktura podataka predstavlja se opštim digrafom u kojem svaki čvor ima
proizvoljan broj sledbenika.
3.Osnovne operacije nad strukturama podaraka, Operativne strukture
podataka, Staticke strukture podataka
Najvažnije osnovne operacije koje se izvode nad strukturama podataka su:
Pristup,
Dodavanje,
Brisanje,
Pretraživanje,
Sortiranje,
Kopiranje,
Spajanje,
Razdvajanje.
Operativne strukture se klasifikuju prema načinu izmene sadržaja i dele na:
Statičke strukture, kod kojih nije mogućno ni dodavati ni uklanjati elemente.
Polustatičke strukture, kod kojih su izmene elemenata moguće, ali samo pod
određenimuslovima.
Dinamičke strukture, kod kojih se izmene elemenata mogu vršiti bez ikakvih
ograničenja.
Najpoznatije statičke strukture su polja (jednodimenzionalna – vektori, dvodimenzionalna
– matrice i višedimenzionalna). Osnovna karakteristika polja je da su svi elementi polja istog
tipa i da se u programskoj deklaraciji polja po pravilu navodi kompletan opseg raspoloživih
vrednosti za svaki indeks koji se ne može menjati.
Najjednostavniji način da se realizuje fizička struktura tipa polje je da se za elemente polja
rezervišu uzastopne memorijske lokacije.
Fizička struktura se dopunjava deskriptorima koji u načelu sadrže opšte podatke o polju kao
što su:
Indikator koji ukazuje da li je u pitanju polje, a ne neka druga struktura,
Naziv polja,
Adresu prvog elementa polja,
Najmanje i najveće vrednosti indeksa,
Tip elementa polja,
Broj lokacija po jednom elementu polja izražen u jedinicama adresiranja (bajt, reč).
4.Polustaticke strukture i stek
Naziv dek (engl. deque) je akronim od double ended queue (>>red sa dva kraja<<) i po
svojim osobina predstavlja sintezu steka i reda s obzirom da je i pristup, dodavanje i
uklanjanje elemenata dozvoljeno na oba kraja.
Osnovne operacije na deku su:
FRONT (prvi)
REAR (poslednji)
POPF (uklanjanje prvog)
POPR (uklanjanje poslednjeg)
PUSHF (dodavanje prvog)
PUSHR (dodavanje poslednjeg)
i potpuno su analogne operacijama kod steka i reda.
6.Dinamicke strukture podatak, liste, jednostruko spregnite liste
Osnovna karakteristika ovih struktura jeste mogućnost pristupa svakom elementu (čvoru) u
strukturi bez menjanja strukture, kao i mogućnost dodavanja ili uklanjanja čvorova bez
ikakvih ograničenja. Broj čvorova je teorijski neograničen, a u fizičkoj strukturi se logički
susedni čvorovi (čvorovi x i y ili y i x su logički ako su u relaciji) u načelu ne nalaze na fizički
susednim memorijskim lokacijama. Osnovne dinamičke strukture su liste i stabla.
Dvostruko spregnute liste predstavljaju uopštenje jednostruko spregnutih lista kod kojih se
svakom uređenom paru (a,b) iz relacije r u jednostrukoj spregnutoj listi pridružuje uređeni
par (b,a). Dakle, susedni elementi su povezani u oba smera. Dvostruko spregnuta lista može
biti i cirkularna, ako su prvi i poslednji element spregnuti u oba smera.
Kod ovog tipa datoteke slogovi se memorišu neposredno jedan iza drugog i ovde se ne
uspostavlja odnos između mesta sloga u datoteci i sadržaja sloga. Zato su ove datoteke
nezavisne od memorijskih jedinica na kojima se realizuju, tj. mogu se smeštati na raznim
perifernim jedinicama.
Slogovi se smeštaju u datoteku logičkim ili hronološkim redosledom, što znači da se novi slog
može dodati samo na logičkom kraju datoteke. Dakle, svaki slog osim prvog i poslednjeg ima
svog prethodnika i sledbenika. Slogovi se u cilju racionalnog korišćenja prostora na
medijumu nosača podataka, udružuju u blokove.
Sekvencijalne datoteke mogu da budu hronološki uređene (kada se nazivaju
sekvencijalne
nesortirane ili serijske datoteke) ili da budu uređene prema logičkom redosledu (kada
se
nazivaju sekvencijalne sortirane datoteke).
Struktura sekvencijalne datoteke je sledeća:
Blok zaglavlja datoteke, (sadrži potrebne informacije koje koriste programi za
upravljanje datotekom (file system) koji ulaze u sastav operativnih sistema),
Blokovi podataka,
Oznaka logičkog kraja datoteke, (neophodna je da bi se imala informacija o zauzeću
memorijskog prostora koji je dodeljen datoteci),
Oznaka fizičkog kraja datoteke, (da bi se imala informacija posle kojeg bloka više
nema mogućnosti za dodavanje blokova (slogova) u datoteku).
11.Relativna datoteka
Direktna organizacija datoteka (rasute ili hash datoteke) su slične relativnim datotekama,
ali su eliminisani neki osnovni nedostaci relativnih datoteka. Kod datoteka sa direktnom
organizacijom slogovi mogu biti različite dužine i u okviru bloka slede neposredno jedan iza
drugog.
Najveći nedostatak relativne datoteke je što se zapisu ne pristupa na osnovu vrednost
ključa, već prema vrednosti rednog broja sloga u datoteci, koji nije sastavni deo sloga.
Direktne datoteke predstavljaju način za uspostavljanje veze između ključa koji je sastavni
deo sloga i relativne adrese koja omogućava direktan pristup traženom slogu.
U opštem slučaju postupak za određivanje adrese sloga na osnovu vrednosti njegovog ključa
sastoji se od sledećih koraka:
Pretvaranje alfanumeričke vrednosti ključa u numeričku (ako ključ već nije
numerički),
Generisanje pseudoslučajnog broja na bazi numeričke vrednosti ključa,
Pretvaranje pseudoslučajnog broja u relativnu adresu,
Pretvaranje relativne adrese u fizičku (efektivnu) adresu.
Zbog nepostojanja metoda koja vrednost ključa jednoznačno preslikava u relativnu adresu,
dva različita ključa se mogu preslikati u istu relativnu adresu Slogovi čiji se ključevi
preslikavaju u istu adresu nazivaju se slogovi sinonimi. Pojava slogova sinonima se zove
kolizija.
Postoji više metoda za razrešavanje problema slogova sinonima. Najčešće korišćena metoda
koristi dve oblasti u adresnom polju datoteke.
Prilikom upisivanja sloga u datoteku, najpre se vrši pokušaj upisivanja u slog u
odgovarajući
blok (baket), koji pripada tzv. primarnoj (matičnoj) oblasti. Ukoliko je primarni
(matični) blok popunjen, formira se lanac sinonima organizovan kao jednostruke
spregnute strukture i slog se upisuje u taj lanac. Oblast koja sadrži sve lance sinonima naziva
se oblast prekoračenja (overflow area). Izloženi postupak usložnjava (i poskupljuje)
postupak dodavanja sloga u datoteku. Iz tih razloga, a da bi se poboljšala ekonomičnost u
korišćenju memorijskog prostora na medijumu nosača podataka kod direktnih datoteka se
ne dozvoljava sekvencijalno čitanje sloga iz datoteke. Dakle, kod direktnih datoteka ne
postoji relacija prethodni i naredni slog.
Iz napred navedenog se može zaključiti da kod direktnih datoteka ne postoji jedinstveno
mesto u datoteci na koje se dati slog upisuje, a kao posledica se javlja poboljšanje
ekonomičnosti korišćenja memorijskog prostora, ali se usporava proces pristupa datom
slogu.
13. Indeks-sekvencijalne datoteke
Slog u okviru indeksa sadrži najveću vrednost ključa i ukazivač na niži nivo indeksa. Prvi niži
nivo indeksa poznat je pod nazivom indeks cilindra, a sledeći niži nivo se zove indeks
traga (ili staze).
Slogovi podataka u datoteci sadrže slogove podataka korisnika. Skup podataka na koje
ukazuju ukazivači iz indeksa tragova predstavljaju primarnu oblast prekoračenja.
Blokovi koji ne ulaze u primarnu oblast podataka, a sadrže slogove podataka korisnika
obrazuju oblast prekoračenja. Kod ISAM datoteke oblast prekoračenja sastoji se od
oblasti prekoračenja cilindra i oblasti prekoračenja datoteke.
Oblast prekoračenja cilindra se sastoji od jednog ili više tragova na datom cilindru
namenjenim za prihvatanje slogova koji ne mogu da budu smešteni u primarno oblasti
podataka u datom cilindru. Slogovi u oblasti prekoračenja cilindra povezani su jedan sa
drugim preko rastuće vrednosti ključa, dok je poslednji slog na tragu cilindra u primarnoj
oblasti cilindra povezan sa prvim slogom u oblasti prekoračenja cilindra.