5. Strukturni tipovi podataka Flashcards
Polja
Polja su kolekcija elemenata istog tipa. Elementima polja se pristupa koriscenjem njihove pozicije (indeks) u polju pa se zato polja cesto nazivaju i indeksne strukture. To je staticka struktura podataka sto znaci da se njegova velicina, tj. broj elemenata u polju ne menja za vreme njegovog zivotnog ciklusa.
Polja u programskom jeziku C
Kada se polje kreira u dinamickoj zoni memorije, broj elemenata je poznat u fazi izvrsenja programa i tada se za njegove elemente rezervise prostor u dinamickoj zoni memorije. Za pristup podacima koji se nalaze u dinamickoj zoni memorije koriste se pokazivaci (speicjalni tipovi podataka koji pamte adrese drugih podataka u memoriji)
Primer:
int niz, velicina;
scanf(“%d”, &velicina);
niz=(int)malloc(velicina*sizeof(int));
Polja se brisu iz dinamicke zone memorije koristeci free(niz);
Pokazivac je primenljiv i za nizove u statickoj, a i u dinamickoj zoni memorije. I za nizove u statickoj zoni memorije naziv niza je pokazivac na njegov prvi element.
Jedino u programskom jeziku C niz u dinamickoj zoni memorije ima osobinu dinamicke strukture podataka.
Funkijom realloc moze da se promeni velicina niza
Polja u programskom jeziku C++
Kod polja u programskom jeziku C++, osobine su nasledjene iz programskog jezika C, tj mogu biti kreirane i u dinamickoj i u statickoj zoni memorije. Medjutim, razlika u odnosu na C je to sto u C++-u polja su iskljucivo staticke strukture podataka, odnosno njihova velicina se ne moze menjati za vreme njihovog zivotnog ciklusa.
int niz[50], velicina;
int *niz1;
niz=new int[velicina];
Brisu se sa delete[] niz;
Visedimenzionalna polja u C-u i C++-u
Postoje i visedimenizonalna polja, tj matrice.
U statickoj zoni memorije izgledaju kao int matrica[50][50];
U dinamickoj zoni memorije, svaka vrsta je poseban niz. Potreban je niz pokazivaca na vrste, ali i pokazivac na pokazivace na vrste.
int n,m; int **matrica; matrica=new int*[n]; for(int i=0;i MANJE n;i++) matrica[i]=new int[m]; Dvodimenzionalna polja se brisu iz dinamicke zone memorije for(int i=0;i MANJE n;i++) delete[] matrica[i]; delete[] matrica;
Polja u programskim jezicima Java i C#
Polja su u Javi i C#-u uvek smestena u dinamickoj zoni memorije i pristupa im se pomocu reference. Ne moze im se menjati velicina tokom njihovog zivotnog ciklusa, tj. pripadaju statickim strukturama podataka.
Deklaracija Java i C# Kreiranje. Nizovi objekata Deklaracija Nizovi objekata kreiranje Kreiranje objekata nizova
atribut lenght
Visedimenzionalna polja u Javi i C#-u
Sto se tice visedimenzionalnih polja u Javi, tj matrica, ona se uvek definisu kao nizovi nizova.
Deklaracija
Kreiranje
Kreiranje donje matrice
Sto se tice matrica u C#-u
Deklaracija
Kreiranje
Kreiranje donje matrice
Enumeracije u C-u i C++-u
Enumeracije su nabrojivi tip podataka. Promenljiva tipa enumeracije moze uzeti jednu od vrednosti navedenih u definiciji tipa. Enumeracija se moze shvatiti i kao skup celobrojnih simbolikcih konstanti. Definicija enumeracije ! Ukoliko inicijalizacija konstante nije navedena, podrazumeva se da prva ima vrednost 0, druga 1 itd. Primer: enum Dani {Pon,Uto,Sre,Cet,Pet}; enum Dani dan; C: dan=Uto; C++: dan=Dani.Uto;
Enumeracije u Javi
Enumeracije su nabrojivi tip podataka. Promenljiva tipa enumeracije moze uzeti jednu od vrednosti navedenih u definiciji tipa. Enumeracija se moze shvatiti i kao skup celobrojnih simbolickih konstanti.
Enumeracije su u Javi referentni tip podataka.
Definicija ENUMERACIJE!
Tip vrednosti moze biti proizvoljan, ali isti za sve clanove. Primer: enum Dani {Pon,Uto,Sre} Dani dan; dan=Dan.Uto; Dani[] svi=Dani.values();
Enumeracije u C#-u
Enumeracije su u C#-u vrednosni tip podataka
Definicija enumeracije!
public enum Dani{Pon,Uto,Sre};
Dani dan=Dani.Uto;
Strukture u programskom jeziku C i C++
Strukture su slozeni tipovi podataka sastavljeni od elemanata razlicitog tipa. Svaki clan strukture ima svoje ime-ime sluzi da se pristupa odredjenom clanu strukture.
Definicjia i primer strukture
Definicija promenljive tipa strukture
Pristup clanovima strukture
Strukture (kao i klase) sluze za predstavljanje objekata u programu. Razlika izmedju struktura i klasa je u podrazumevanom pravu pristupa( za klase privatno, za strukture javno).
Strukture u programskom jeziku C#
Strukture su slozeni tipovi podataka sastavljeni od elemenata razlicitog tipa. Svaki clan strukture ima svoje ime koje sluzi da bi tom clanu moglo da se pristupi.
Definicija strukture
Razlika u odnosu na klase je sto su strukture vrednosni tip i ne nasledjuju se. U strukturi se vrednosti atributa ne inicijalizuju( osim ako nisu staticki ili konstantni).
Liste
Liste su dinamicke strukture podataka – menjaju svoju velicinu tokom zivotnog ciklusa i veoma su koriscene u funkcionalnim jezicima. Svaki element liste sadrzi info deo-podatak i vezu sa sledecim elementom(pokazivac ili referencu). Elementi mogu da se dodaju i brisu iz liste (na pocetak, na kraj, iza zadatog elementa). Takodje moguc je i obilazak kroz listu.
Liste u Javi i C#-U ne postoje kao ugradjeni tipovi. Bibliotecke klase za predstavljanje listi su u Javi java.util.LinkedList ZAGRADE T, a u C#-u System.Collections.Generic.LinkedList ZAGRADE T