-
godina rođenja
(short)
Rok
za predaju zadaće: 23. 12 2007.
9) Napisati
funkcije za dodavanje
i skidanje elementa u stog realiziran pomoću pokazivača.
U glavnom
programu izvesti učitavanje podataka za element stoga iz ulazne
datoteke kao i
ispisivanje elementa stoga
koji je skinut (npr. unijeti nekoliko elemenata u stog, a zatim skinuti
i ispisati svaki element sve dok
stog ne ostane prazan). Element
stoga je zapis o izvršavanju funkcija unutar programa:
-
identifikacijski broj procesa
(short)
-
ime funkcije
(20
znakova)
-
identifikacijski broj nadređenog procesa (short)
-
vrijeme slanja procesa
(int)
Rok
za predaju zadaće: 7. 01 2008.
10) Napisati program u kojem se realizira red pomoću cirkularnog polja.
Svaki element reda ima građu:
- cijeli broj (int)
- niz znakova duljine 15
Ulazni podatci čitaju se iz ulazne datoteke. Potrebno je napraviti
funkciju za ubacivanje podataka u red, izbacivanje podataka iz reda,
određivanje duljine reda i ispisivanje elemenata u redu, te njihovo
pozivanje iz glavne procedure.
Rok
za predaju zadaće: 7. 01 2008.
11)
Strukturu
podataka red realizirati uz upotrebu pokazivača. Svaki
element reda sadrži:
- naziv (20 znakova)
- vrijednost (float).
Treba napisati funkciju koja dodaje i funkciju koja briše element
iz reda, u kojima treba ispisati element na kojem se obavlja operacija.
Također napisati funkciju koja ispiše sve elemente u redu.
Rok za predaju zadaće: 7. 01. 2008.
12) Napisati program za realizaciju dvostruko povezane liste u kojoj
pojedina ćelija ima ovakvu građu:
- cijeli broj (int)
- realni broj (float)
- pokazivač na sljedeći čvor
- pokazivač na prethodni čvor
Napisati funkcije za ubacivanje i izbacivanje podataka u listu,
pretraživanje liste po cijelim i po realnim vrijednostima, te funkciju
za ispis cijele liste. Elementi liste, cijeli i realni brojevi, se
dobivaju upotrebom generatora slučajnih brojeva.
Rok
za predaju zadaće: 10. 01. 2008.
13)
Napraviti program koji sortira niz cijelih brojeva proizvoljne
duljine (koja se zadaje na početku izvođenja programa) uzlazno (od
najmanjeg prema najvećem) i silazno (od najvećeg prema najmanjem)
upotrebom binarnog stabla traženja izvedenog pomoću polja i obilaskom
tog stabla algoritmom
obilaska koji ispisuje elemente u sortiranom redoslijedu.
Rok za predaju zadaće: 10. 01. 2008.
14)
Napraviti program koji sortira niz realnih brojeva proizvoljne
duljine (koja se zadaje na početku izvođenja programa) uzlazno (od
najmanjeg prema najvećem) i silazno (od najvećeg prema najmanjem)
upotrebom binarnog stabla traženja izvedenog pomoću pokazivača i
obilaskom tog stabla algoritmom
obilaska koji ispisuje elemente u sortiranom redoslijedu.
Rok za predaju zadaće: 10. 01. 2008.
15)
Napisati program koji od ulaznog polja slučajno generiranih cijelih
brojeva izgradi minimalnu hrpu (u korijenu je minimalni element), te
ispiše polje u kojem su spremljeni elementi hrpe. Zatim napisati
funkciju za silazno sortiranje (od najvećeg prema najmanjem elementu)
polja cijelih brojeva upotrebom sortiranja pomoću hrpe. Sortira
se polje generiranih slučajnih
cijelih brojeva, proizvoljnog broja elemenata N koji se zadaje na
početku programa (koristiti dinamičko rezerviranje memorije za
spremanje polja - funkcija malloc).
Rok
za predaju zadaće: 30. 01. 2008.
16) Napisati
program koji od ulaznog polja nizova alfabetskih znakova duljine 4
(koriste se samo
slova engleske abecede, dakle ASCII znakovi koji odgovaraju slovima;
sami izaberite na koji način se unose podaci: s tastature, iz ulazne
datoteke, generator slučajnih brojeva ...) gdje je broj nizova
proizvoljan i
unosi se na početku izvršavanja programa (koristiti funkciju malloc()
za
rezerviranje memorije za polje), izgradi maksimalnu hrpu, te ispiše
polje u kojem
su spremljeni elementi hrpe. Također napraviti funkciju koja uzlazno
sortira
polje takvih nizova znakova (po abecedi) upotrebom sortiranja pomoću
hrpe i ispisati
sortirano polje.
Rok
za predaju zadaće: 30. 01. 2008.
17) Napisati program u kojem je realiziran prioritetni red pomoću hrpe
čiji članovi imaju građu:
- cijeli broj koji određuje prioritet
- realni broj
koji se dobivaju generiranjem slučajnih brojeva.
Program treba sadržavati funkcije za ubacivanje novih i izbacivanje
elemenata iz prioritetnog reda (vidjeti predavanja i vježbe), te za
ispis elemenata hrpe. Hrpu implementirati pomoću polja čija je duljina
unaprijed zadana na početku programa (čime je ograničen i maksimalan
broj članova prioritetnog reda).
Rok
za predaju zadaće: 30. 01. 2008.
18) Napisati
funkciju za silazno sortiranje (od najvećeg prema
najmanjem elementu) ulaznog polja slučajno generiranih cijelih brojeva
duljine N algoritmom sortiranja spajanjem (Merge Sort). Duljina polja
se zadaje na početku izvršavanja programa i upotrebom funkcije malloc()
rezervira se memorija za polje. Usporediti vrijeme izvršavanja
algoritama sortiranja spajanjem i sortiranja umetanjem (Insertion Sort)
na primjeru dugačkog niza brojeva (ulazni niz slučajno generiranih
brojeva kopirati u drugo polje koje će biti ulazni niz za sortiranje
umetanjem). Usporediti sortirana polja i utvrditi da li su oba
algoritma dala identičan (točan) rezultat.
Rok za predaju zadaće: 06. 02. 2008.
19) Napisati
funkciju za silazno sortiranje (od najvećeg prema najmanjem elementu)
ulaznog polja slučajno generiranih cijelih brojeva duljine N algoritmom
Shell-ovog sortiranja. Duljina polja se zadaje na početku
izvršavanja programa i upotrebom funkcije malloc() rezervira se
memorija za polje. Usporediti vrijeme izvršavanja algoritama Shell-ovog
sortiranja i sortiranja umetanjem (Insertion Sort) na primjeru dugačkog
niza brojeva (ulazni niz slučajno generiranih brojeva kopirati u drugo
polje koje će biti ulazni niz za sortiranje umetanjem). Usporediti
sortirana polja i utvrditi da li su oba algoritma dala identičan
(točan) rezultat.
Rok za predaju zadaće: 06. 02. 2008.
20) Napisati
funkciju za silazno sortiranje (od najvećeg prema najmanjem elementu)
ulaznog polja slučajno generiranih cijelih brojeva duljine N algoritmom
brzog sortiranja (Quick Sort). Duljina polja se zadaje na početku
izvršavanja programa i upotrebom funkcije malloc() rezervira se
memorija za polje. Usporediti vrijeme izvršavanja algoritama brzog
sortiranja i sortiranja umetanjem (Insertion Sort) na primjeru dugačkog
niza brojeva (ulazni niz slučajno generiranih brojeva kopirati u drugo
polje koje će biti ulazni niz za sortiranje umetanjem). Usporediti
sortirana polja i utvrditi da li su oba algoritma dala identičan
(točan) rezultat.
Rok za predaju zadaće: 06. 02. 2008.
21) Napisati
program u kojem se apstraktni tip podataka skup izvodi
pomoću vezane liste (vidjeti predavanja). Elementi skupova su cijeli
brojevi (sami izaberite način na koji se određuju ulazni elementi za
skupove). Liste ostvariti pomoću pokazivača. Napisati funkcije za uniju
dva skupa Union(), presjek dva skupa Intersection() i razliku dva skupa
Difference(). Napisati funkciju za ispis elemenata skupa kojom se
ispisuju ulazni skupovi i rezultati gornje tri funkcije.
Rok za predaju zadaće: 06. 02. 2008.
22) Napisati
program koji rješava 0/1 problem ranca (vidjeti
predavanja). Zadano je n predmeta (nije unaprijed zadan broj nego se
određuje na početku izvođenja programa) O1, ..., On
te njihove težine wi i vrijednosti pi. Kapacitet
ranca je c težinskih jedinica. Težine i vrijednosti predmeta, te
kapacitet ranca su realne pozitivne veličine. Odrediti koje predmete
treba uzeti u ranac tako da njihova ukupna vrijednost bude maksimalna ?
Predmeti se ne mogu dijeliti, nego se uzimaju ili ne.
Rok za predaju zadaće 06. 02. 2008.