Strukture podataka i algoritmi Prvo predavanje gradivni elementi



















- Slides: 19

Strukture podataka i algoritmi Prvo predavanje gradivni elementi strukture podataka LISTE


Tekstualni editor

Heksadecimalni editor

Strukture podataka i algoritmi v. Strukture podataka: “statički aspekt programa” v. Algoritmi: “dinamički aspekt programa”

Rješavanje problema metodom postepenog profinjavanja problem matematički model globalni opis algoritma problema apstraktni tipovi podataka algoritam zapisan pseudo kodom strukture podataka algoritam zapisan u programskom jeziku rješenje

Definicije pojmova (podaci) v Tip podataka: Ø skup vrijednosti koje neki podatak može poprimiti (integer, real) v Apstraktni tip podataka Ø zadan jedan ili više tipova podataka, te jedna ili više operacija (procedura; funkcija) primjer kompleksni brojevi v Struktura podataka Ø Skupina varijabli u nekom programu i veza među tim varijablama

Algoritam v Konkretna realizacija apstraktnog tipa podataka u nekom programu. Konačni niz instrukcija od kojih svaka ima jasno značenje i može biti izvršena u konačnom vremenu Iste instrukcije mogu se izvršiti više puta pod pretpostavkom da same instrukcije ukazuju na ponavljanje

Elementi od kojih se grade strukture podataka v Klijetka (engl. cell) v Polje v Zapis v Pokazivač (engl. pointer) v Kursor

Klijetka (engl. cell) Varijabla koju promatramo kao zasebnu cjelinu Relativan pojam jer možemo analizirati i njenu unutarnju građu u određenim okolnostima Svaka klijetka ima tip i adresa Sadržaj klijetke odgovarajućeg tipa Gradivni element polja

Polje Mehanizam udruživanja manjih dijelova strukture u veće Više klijetki istog tipa pohranjeni na uzastopnim adresama Broj klijetki je unaprijed zadan i nepromjenljiv Indeksi cjelobrojne konstante 1 2 3 4 5 6

Zapis Još jedan način udruživanja manjih cjelina u veće strukture Zapis čini više klijetki koje ne moraju biti istog tipa ali su pohranjene na uzastopnim adresama Pojedina klijetka zove se komponenta zapisa Zapise možemo kombinirati u polja

Pokazivač ( engl. Pointer) Klijetka koja pokazuje na neku drugu klijetku Služi za uspostavljanje veze između dijelova strukture Sadržaj pokazivača je adresa klijetke koju treba pokazati

Kursor Ø Također povezuje dijelove strukture Ø Klijetka tipa integer koja pokazuje na element u polju Ø Sadržaj kursora je indeks tog elementa polja i

Primjer strukture podataka 4 2 1 1. 3 3 2 3 3. 4 0 5. 6 2 7. 8 1 4

Lista (općenito) v Lista je konačan niz ( od nule ili više podataka istog tipa. Podaci koji čine listu nazivaju se elementima liste ü [a 1, a 2, a 3, …an ] ü n - duljina liste ü Ako je n=0 prazna lista ü Definiran prethodnik i sljedbenik ü Broj elemenata nije fiksan ü Identitet elementa liste određen njegovim pozicijom

Primjer liste Polinom P(x)=anxen+… anxen Gdje je 0<e 1<e 2…<en Zapravo se radi o listi [(a 1 , e 1), (a 2 , e 2), … , (an , en)]

Operacije nad listama END(L) – funkcija koja vraća poziciju na kraj liste MAKE_NULL(L) – pretvara listu u praznu listu i vraća poziciju END(L) INSERT(x, p, L) – ubacuje podatak x na poziciju p u listi L DELETE(p, L) – izbacuje element p iz liste L FIRST(L) – funkcija vraća prvu poziciju u listi, za praznu listi vraća END(L) NEXT(p, L), PREVIOUS(p, L) vraća poziciju ispred odnosno iza u listi RETRIVE(p, L)

Implementacija listi Pomoću polja 1 2 a 2 3 a 3 4 a 4 5 a 5 6 a 6 Pomoću pokazivača a 1 Glava (header) a 2 a 4 a 5 a 3