Strukture podataka i algoritmi Prvo predavanje gradivni elementi

  • Slides: 19
Download presentation
Strukture podataka i algoritmi Prvo predavanje gradivni elementi strukture podataka LISTE

Strukture podataka i algoritmi Prvo predavanje gradivni elementi strukture podataka LISTE

Tekstualni editor

Tekstualni editor

Heksadecimalni editor

Heksadecimalni editor

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

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

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

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

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

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

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

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

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

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

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

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

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

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) –

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

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