/ Zapo č eto ponedjeljak, 1. velja č e 2021., 18:30 Stanje Zavr š eno Zavr š eno ponedjeljak, 1. velja č e 2021., 19:11 Proteklo vrijeme 40 min 39 s Ocjena 97,00 od maksimalno 100,00 Pitanje 1 To č no Broj bodova: 2,00 od 2,00 Vremenska slo ž enost sekvencijalnog pretra ž ivanja je O( n ). Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'To č no'. Pitanje 2 To č no Broj bodova: 2,00 od 2,00 Sortiranje podataka je jednake vremenske slo ž enosti kao i pretra ž ivanje. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'Neto č no'. Pitanje 3 To č no Broj bodova: 2,00 od 2,00 Povezane liste uz svaki podatak koriste i dodatnu memorijsku adresu kako bi se znalo gdje je sljede ć i podatak. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'To č no'. Pitanje 4 To č no Broj bodova: 2,00 od 2,00 Ako povezana lista ima pokaziva č e na prvog i na zadnjeg, onda mo ž emo trenuta č no (u vremenu O(1)) obrisati zadnji podatak. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'Neto č no'. / Pitanje 5 To č no Broj bodova: 2,00 od 2,00 Svaki rekurzivni problem bi se trebao mo ć i rede nirati pomo ć u jednog ili vi š e manjih podproblema koji su po prirodi identi č ni, ali manji po veli č ini. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'To č no'. Pitanje 6 To č no Broj bodova: 2,00 od 2,00 U slu č aju da nemamo osnovni slu č aj, rekurzivna funkcija ć e pozivati samu sebe beskona č no puta. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'Neto č no'. Pitanje 7 To č no Broj bodova: 2,00 od 2,00 Postoje tri vrste obilaska binarnog stabla po š irini. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'Neto č no'. Pitanje 8 To č no Broj bodova: 2,00 od 2,00 Stablo se u memoriji prikazuje pomo ć u jednog niza i jednog pokaziva č a. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'Neto č no'. Pitanje 9 To č no Broj bodova: 2,00 od 2,00 Desni nasljednik od i-tog č vora u hrpi se nalazi po formuli 2*i+1, ukoliko je to manje od broja elemenata hrpe. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'To č no'. / Pitanje 10 To č no Broj bodova: 2,00 od 2,00 Hrpa sa N č vorova (N>10) mo ž e imati u najgorem slu č aju N razina. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'Neto č no'. Pitanje 11 To č no Broj bodova: 4,00 od 4,00 Zadan je dio programa u C-u koji je napisan prema algoritmu binarnog pretra ž ivanja. Napisani su i brojevi linija. Me đ utim, u jednoj liniji se nalazi gre š ka. U kojoj? 1. dg = 0; 2. gg = N-1; 3. for (;;) { 4. s = dg+gg/2; 5. if (V[s]==x) { 6. printf( "%d Pronadjen! Na %d. poziciji u nizu.\n", x, s ); 7. exit( 0 ); 8. } 9. if (x<V[s]) gg = s-1; 10. if (x>V[s]) dg = s+1; 11. if (dg>=gg) { 12. printf( "%d nije pronadjen!\n", x ); 13. exit( 1 ); 14. } 15. } (unesite samo broj linije u kojoj je gre š ka, bez to č ke na kraju) Odgovor: 4 Ispravan odgovor je: 4 Pitanje 12 To č no Broj bodova: 4,00 od 4,00 Pristup elementu kod povezanih lista ima slo ž enost O( n ). Ovakva slo ž enost se jo š naziva i linearna slo ž enost. Pitanje 13 To č no Broj bodova: 4,00 od 4,00 Ako je zadana rekurzivna funcija koja ra č una faktorijele: int fakt( int n ) , koliko ć e biti rekurzivnih poziva ako ju pozovemo s fakt( 855 )? Odgovor: 855 Ispravan odgovor je: 855 / Pitanje 14 To č no Broj bodova: 4,00 od 4,00 Stablo kod kojeg sve razine moraju biti popunjene, osim zadnje razine koja mora biti popunjena s lijeva na desno se naziva: Odaberite jedan odgovor: a. Hu manovo binarno stablo b. Op ć e stablo c. Pro š ireno binarno stablo d. Potpuno binarno stablo e. Poredano binarno stablo Va š odgovor je to č an. Ispravan odgovor je: Potpuno binarno stablo Pitanje 15 To č no Broj bodova: 4,00 od 4,00 Neka je zadana procedura void UHRPI(int i) koja uhrpljava č vor na i-tom mjestu prema algoritmu koji smo u č ili na predavanju i procedura zamjeni(..) koja zamjenjuje mjesta dva elementa u zadanom nizu V od N elemenata. NH je broj elemenata hrpe. Prema algoritmu za soritranje koriste ć i hrpu dana je sljede ć a procedura u C-u: 1. void HeapSort() { 2. int i; 3. NH = N; 4. for (i=NH/2; i>=0; i--) UHRPI( i ); 5. for (i=NH-1; i>=1; i--) { 6. zamjeni( &V[i], &V[i-1] ); 7. NH--; 8. UHRPI( 0 ); 9. }} Me đ utim ova procedura ima gre š ku. Napi š ite u kojoj je liniji gre š ka! (unesite samo broj linije u kojoj je gre š ka, bez to č ke na kraju) Odgovor: 6 Ispravan odgovor je: 6 Pitanje 16 To č no Broj bodova: 5,00 od 5,00 U funkciji HEAP SORT koja sortira podatke koriste ć i hrpu dodajte dijelove koji nedostaju kako bi ona ispravno radila. void HeapSort(int arr [] , int n) { for (int i = n / 2 - 1; i >= 0; i--) heapify(arr, n, i); for (int i = n - 1; i >= 0; i-- ) { Swap(&arr[0], &arr[ i ]); heapify (arr, i, 0); } } / Pitanje 17 To č no Broj bodova: 5,00 od 5,00 U funkciji koja sortira povezanu listu dodajte dijelove koji nedostaju kako bi ona ispravno radila. void sortiraj(ppopis *glava){ ppopis *temp1; temp1 = new ppopis; ppopis *temp2; temp2 = new ppopis; int temp=0; for(temp1 = glava ;temp1!= NULL ;temp1=temp1->next){ for(temp2= temp1 ->next;temp2!= NULL ;temp2=temp2->next){ if(temp1->broj > temp2->broj){ temp = temp1 ->broj; temp1->broj = temp2->broj; temp2->broj=temp; } } } } Pitanje 18 Djelomi č no to č no Broj bodova: 2,00 od 5,00 U funkciji za obilazak stabla dodajte dijelove koji nedostaju kako bi ona ispravno radila. void preOrder (struct cvor* root){ if( root==NULL ) return ; else{ printf( "%d ",root->x ); preOrder( root-> lijevi ); preOrder( root-> desni ); } } Pitanje 19 To č no Broj bodova: 5,00 od 5,00 Dana je funkcija koja generira slu č ajni niz sastavljen od nula i jedinica, tako da se ne mogu pojaviti vi š e od 3 uzastopne jedinice. Popunite polja koja nedostaju tako da programski kod radi ispravno. void gen_array(int *a, int n) { int uzast1=0; for (int i=0; i<n; i++) { a[i] = rand()% 2 ; if (a[i] == 1) uzast1++; if (uzast1> 3 ) { a[i] = 0 ; uzast1 = 0 ; } } } / void obilazak( cvor *t ) { if (cvor->lijevi!=NULL) obilazak( cvor->lijevi ); if (cvor->desni!=NULL) obilazak( cvor->desni ); printf("%d ",cvor->x); } Pitanje 20 To č no Broj bodova: 10,00 od 10,00 Š to ć e ispisati sljede ć i program: #include <stdio.h> #include <stdlib.h> struct oe_ { int x; struct oe_ *sljedeci; }; typedef struct oe_ oe; void ubaci( oe **t, int novix ) { oe *novi = (oe *)malloc( sizeof(oe) ); novi->x = novix; novi->sljedeci = *t; *t = novi; } int main() { oe *p1 = NULL, *p2=NULL, *t1, *t2; ubaci( &p1, 1 ); ubaci( &p2, 2 ); ubaci( &p1, 3 ); ubaci( &p2, 4 ); ubaci( &p1, 5 ); ubaci( &p2, 6 ); for (t1=p1; t1!=NULL; t1=t1->sljedeci) printf("%d",t1->x); return 0; } Odgovor: 531 Ispravan odgovor je: 531 Pitanje 21 To č no Broj bodova: 10,00 od 10,00 Uredite redoslijed naredbi kako dobili funkciju 'obilazak' koja bi odgovarala postorder (LDN) obilasku stabla. Va š odgovor je to č an. / Pitanje 22 To č no Broj bodova: 20,00 od 20,00 Napi š ite funkciju " void ncvorova(struct cvor *root) " koja ć e izra č unati i na ekran ispisati koliko ima ukupno č vorova u stablu. Struktura cvor sastoji se od cjelobrojnog podatka X i pokaziva č a na lijevi i desni nasljednik (*lijevi, *desni). Answer: (penalty regime: 0,25,50,75,100 %) Test Got test1 11 test2 7 test3 2 test4 0 Passed all tests! To č no Broj bodova za ovaj odgovor: 20,00/20,00. int prebroji(struct cvor *root, int count) { if(root!=NULL) { if(root->lijevi!=NULL) count = prebroji(root->lijevi, count); count++; if(root->desni!=NULL) count = prebroji(root->desni, count); } return count; } void ncvorova(struct cvor *root) { int count=0; count = prebroji(root, count); printf("%d", count); } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 / Zapo č eto ponedjeljak, 1. velja č e 2021., 18:30 Stanje Zavr š eno Zavr š eno ponedjeljak, 1. velja č e 2021., 19:13 Proteklo vrijeme 43 min 41 s Ocjena 80,00 od maksimalno 100,00 Pitanje 1 To č no Broj bodova: 2,00 od 2,00 Prona ć i najve ć i podatak u nesortiranom nizu se mo ž e trenuta č no: O(1). Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'Neto č no'. Pitanje 2 To č no Broj bodova: 2,00 od 2,00 Zamjena mjesta dva podatka u nizu od N elemenata je operacija trenuta č ne slo ž enosti. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'To č no'. Pitanje 3 To č no Broj bodova: 2,00 od 2,00 Povezana lista se mo ž e obi ć i unatrag (od zadnjeg elementa do prvog) u linearnom vremenu O( n ). Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'To č no'. / Pitanje 4 To č no Broj bodova: 2,00 od 2,00 Ako imamo sortiranu povezanu listu onda ju mo ž emo pretra ž ivati algoritmom binarnog pretra ž ivanja. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'Neto č no'. Pitanje 5 To č no Broj bodova: 2,00 od 2,00 Slo ž enost rekurzivne funkcije int fakt( int n ) koja ra č una faktorijel je O( n ). Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'To č no'. Pitanje 6 To č no Broj bodova: 2,00 od 2,00 Rekurzivno rje š enje se uvijek izvodi puno br ž e nego iterativno rje š enje. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'Neto č no'. Pitanje 7 Neto č no Broj bodova: 0,00 od 2,00 Postoje tri vrste obilaska binarnog stabla po š irini. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'Neto č no'. / Pitanje 8 Neto č no Broj bodova: 0,00 od 2,00 Obilasci binarnog stabla po dubini se mogu rije š iti rekurzivnom funkcijom. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'To č no'. Pitanje 9 To č no Broj bodova: 2,00 od 2,00 Algoritam za sortiranje BubbleSort je sporiji od algoritma za sortiranje koji koristi hrpu HeapSort. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'To č no'. Pitanje 10 To č no Broj bodova: 2,00 od 2,00 Hrpa sa N č vorova (N>10) mo ž e imati u najgorem slu č aju N razina. Odaberite jedan odgovor: To č no Neto č no Ispravan odgovor je 'Neto č no'. / Pitanje 11 Neto č no Broj bodova: 0,00 od 4,00 Zadan je dio programa u C-u koji je napisan prema algoritmu binarnog pretra ž ivanja. Napisani su i brojevi linija. Me đ utim, u jednoj liniji se nalazi gre š ka. U kojoj? 1. dg = 0; 2. gg = N+1; 3. for (;;) { 4. s = (dg+gg)/2; 5. if (V[s]==x) { 6. printf( "%d Pronadjen! Na %d. poziciji u nizu.\n", x, s ); 7. exit( 0 ); 8. } 9. if (x<V[s]) gg = s-1; 10. if (x>V[s]) dg = s+1; 11. if (dg>=gg) { 12. printf( "%d nije pronadjen!\n", x ); 13. exit( 1 ); 14. } 15. } (unesite samo broj linije u kojoj je gre š ka, bez to č ke na kraju) Odgovor: 3 Ispravan odgovor je: 2 Pitanje 12 To č no Broj bodova: 4,00 od 4,00 Poredajte po vremenskom trajanju slijede ć e operacije (od najkra ć eg do najduljeg trajanja). Ispitivanje je li povezana lista prazna Brisanje svih elemenata liste Dodavanje novog elementa na po č etak povezane liste Va š odgovor je to č an. Ispravan odgovor je: Ispitivanje je li povezana lista prazna → 1 (najbr ž e), Brisanje svih elemenata liste → 3 (najsporije), Dodavanje novog elementa na po č etak povezane liste → 2 (srednje) 1 (najbr ž e) 3 (najsporije) 2 (srednje) / Pitanje 13 To č no Broj bodova: 4,00 od 4,00 Kod problema povrh(a,b) , ako je a=1240, koliko treba biti b, da bi izvr š avanje ove funkcije trajalo najdu ž e? Odgovor: 620 Ispravan odgovor je: 620 Pitanje 14 To č no Broj bodova: 4,00 od 4,00 Stablo kod kojeg sve razine moraju biti popunjene, osim zadnje razine koja mora biti popunjena s lijeva na desno se naziva: Odaberite jedan odgovor: a. Poredano binarno stablo b. Op ć e stablo c. Hu manovo binarno stablo d. Pro š ireno binarno stablo e. Potpuno binarno stablo Va š odgovor je to č an. Ispravan odgovor je: Potpuno binarno stablo / Pitanje 15 Neto č no Broj bodova: 0,00 od 4,00 Neka je zadana procedura void UHRPI(int i) koja uhrpljava č vor na i-tom mjestu prema algoritmu koji smo u č ili na predavanju i procedura zamjeni(..) koja zamjenjuje mjesta dva elementa u zadanom nizu V od N elemenata. NH je broj elemenata hrpe. Prema algoritmu za soritranje koriste ć i hrpu dana je sljede ć a procedura u C-u: 1. void HeapSort() { 2. int i; 3. NH = N; 4. for (i=NH/2; i>=0; i--) UHRPI( i ); 5. for (i=NH-1; i<0; i--) { 6. zamjeni( &V[0], &V[i] ); 7. NH--; 8. UHRPI( 0 ); 9. }} Me đ utim ova procedura ima gre š ku. Napi š ite u kojoj je liniji gre š ka! (unesite samo broj linije u kojoj je gre š ka, bez to č ke na kraju) Odgovor: 4 Ispravan odgovor je: 5 Pitanje 16 To č no Broj bodova: 5,00 od 5,00 U funkciji HEAP SORT koja sortira podatke koriste ć i hrpu dodajte dijelove koji nedostaju kako bi ona ispravno radila. void HeapSort(int arr [] , int n) { for (int i = n / 2 - 1; i >= 0; i--) heapify(arr, n, i); for (int i = n - 1; i >= 0; I-- ) { Swap(&arr[0], &arr[ I ]); heapify (arr, i, 0); } } / Pitanje 17 To č no Broj bodova: 5,00 od 5,00 U funkciji za obilazak stabla dodajte dijelove koji nedostaju kako bi ona ispravno radila. void inOrder (struct cvor* root){ if( root==NULL ) return ; else{ inOrder(root-> left ); printf( root->x ); inOrder(root-> right ); } } Pitanje 18 Djelomi č no to č no Broj bodova: 3,00 od 5,00 U funkciji koja obavlja SELECT-SORT dodajte dijelove koji nedostaju kako bi ona ispravno radila. void SELEKTsort(float V [] , int n) { int i, j; for (i = 0; i < n - 1; i++) for (j = 0 + 1; j < n; j++) if (V[i] > V[j]) { float temp = V[i ] V[i] = V[j]; V[j] = temp ; } } / Pitanje 19 Djelomi č no to č no Broj bodova: 4,00 od 5,00 U funkciji koja sortira povezanu listu dodajte dijelove koji nedostaju kako bi ona ispravno radila. void sortiraj(ppopis *glava){ ppopis *temp1; temp1 = new ppopis; ppopis *temp2; temp2 = new ppopis; int temp=0; for(temp1 = glava ;temp1!= NULL ;temp1=temp1->next){ for(temp2= glava ->next;temp2!= NULL ;temp2=temp2->next){ if(temp1->broj > temp2->broj){ temp = temp1 ->broj; temp1->broj = temp2->broj; temp2->broj=temp; } } } } / void ubaci( oe **t, int novix ) { if (*t==NULL) { *t = novi; return; } oe *t2, *novi = (oe *)malloc( sizeof(oe) ); novi->x = novix; novi->sljedeci = NULL; t2 = *t; while (t2->sljedeci!=NULL) t2=t2->sljedeci; t2->sljedeci = novi; } Pitanje 20 Djelomi č no to č no Broj bodova: 5,00 od 10,00 Preuredi redoslijed naredbi funkcije ubaci koja ubacuje novi č vor na po č etak kraj povezane liste. Va š odgovor je djelomi č no to č an. Vrsta ocjenjivanja: Apsolutna pozicija Detalji ocjene: 3 / 6 = 50% Here are the scores for each item in this response: 1. 1 / 1 = 100% 2. 0 / 1 = 0% 3. 0 / 1 = 0% 4. 0 / 1 = 0% 5. 1 / 1 = 100% 6. 1 / 1 = 100% To č an redoslijed za ove odgovore je slijede ć i: 1. void ubaci( oe **t, int novix ) { 2. oe *t2, *novi = (oe *)malloc( sizeof(oe) ); 3. novi->x = novix; novi->sljedeci = NULL; 4. if (*t==NULL) { *t = novi; return; } 5. t2 = *t; while (t2->sljedeci!=NULL) t2=t2->sljedeci; t2->sljedeci = novi; 6. } / Pitanje 21 To č no Broj bodova: 10,00 od 10,00 Pove ž ite predlo ž ene vrste obilazaka za stablo na slici: LDN NLD LND Va š odgovor je to č an. Ispravan odgovor je: LDN → 12,14,9,19,23,17,67,72,54,76,50, NLD → 50,17,9,14,12,23,19,76,54,72,67, LND → 9,12,14,17,19,23,50,54,67,72,76 12,14,9,19,23,17,67,72,54,76,50 50,17,9,14,12,23,19,76,54,72,67 9,12,14,17,19,23,50,54,67,72,76 / Pitanje 22 To č no Broj bodova: 20,00 od 20,00 Napisati rekurzivnu funkciju " int pronadji(struct cvor *root, int n) " koja ć e prona ć i (ako postoji) tra ž enu vrijednost n u poredanom binarnom stablu. Ako cvor sa trazenom vrijednoscu postoji funkcija treba vratiti vrijednost 1 , a ukoliko ne postoji 0 . Stablo je predstavljeno strukturom cvor koja sadrzi cjelobrojni podatak X te pokaziva č e na lijevog nasljednika lijevi i pokaziva č a na desnog nasljednika desni ; Answer: (penalty regime: 0,25,50,75,100 %) Test Input Expected Got test2 32 1 1 test3 100 0 0 test4 33 0 0 Passed all tests! To č no Broj bodova za ovaj odgovor: 20,00/20,00. int pronadji(struct cvor *root, int n) { struct cvor *root1; root1=root; if(root1==NULL){return 0;} while(1) { if(root1->X==n){return 1;} else { if(n<root1->X) { if(root1->lijevi!=NULL){root1=root1->lijevi;} else{return 0;} } if(n>root1->X){ if(root1->desni!=NULL){root1=root1->desni;} else{return 0;} } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20