Professional Documents
Culture Documents
AISP Rješenja
AISP Rješenja
Napisati rekurzivnu funkciju "void binarnopretrazivanje(int V[], int dg, int gg, int x)"
kojoj se zadaju sortirani cjelobrojni niz V, te donjga granica dg i gornja granica gg niza i podatak x koji se
traži. Funcija treba ispisati "DA" ako se podatak X nalazi u nizu V, a "NE" ako x-a nema u nizu V.
Syntax Error(s)
Netočno
/
Pitanje 4 Točno Broj bodova: 7,00 od 7,00
Dodjelite svakom čvoru njegove nasljednike (ako ih ima) za poredano binarno stablo
predstavljeno ulaznim vektorom [6,1,22,100,65,43,18,4,80,75].
100 65,-
75 -,-
65 43,80
22 18,100
80 75,-
43 -,-
18 -,-
6 1,22
4 -,-
1 -,4
Ispravan odgovor je: 100 → 65,-, 75 → -,-, 65 → 43,80, 22 → 18,100, 80 → 75,-, 43 → -,-, 18 → -,-, 6 → 1,22, 4
→ -,-, 1 → -,4
/
Pitanje 5 Točno Broj bodova: 3,00 od 3,00
Točno
Netočno
Točno
Netočno
Točno
Netočno
/
Pitanje 8 Točno Broj bodova: 3,00 od 3,00
Funkcija int fakt( int n ), može izračunati točno fakt( 12 ) = 479001600. Zašto ova
funkcija ne može točno izračunati fakt( n ), za n>12?
Ispravan odgovor je: Rezultat prelazi izvan opsega vrijednosti 32-bitnog tipa podataka int
Točno
Netočno
/
Pitanje 1 Netočno Broj bodova: 0,00 od 20,00
Zadana je povezana lista predstavljena strukturom element koja se sastoji od cjelobrojnog podatka X i pokazivača next na sljedeći element povezane liste.
Napisati algoritam koji sažima povezanu listu tako što izbacuje svaki element koji se više puta pojavljuje u listi.
Napisati funkciju "povezanaLista(struct element * glava)" koja na ekran ispisuje izgled nove povezane liste.
NAPOMENA:
** Koristiti C jezik!
** Za ispis povezane liste pozvati već spremnu funkciju ispis(struct element * glava).
Npr.
//vaš kod
ispis(nova_lista);
NABAVITI RJEŠENJE
3 struct element * nova_lista = NULL;
4 if(glava != NULL){
5 for(; p != NULL; p=p->next ){
6 struct element* t = glava;
7 int a = 0;
8 for(; t != NULL;t=t->next){
9 if(p->X == t->X){
10 a = 1;
11 break;
12 }
13 }
14 if(a==0){
15 if(nova_lista == NULL) {
16 nova_lista = p;
17 } else {
18 nova_lista->next = p;
19 nova_lista = p;
20 }
21 }
22 }
23 }
24
25 ispis(nova_lista);
26 }
/
Test Input Expected
Netočno
Napiši rekurzivnu funkciju "void trokut(int n)" koja će za zadani n=5, ispisati sljedeći uzorak:
*****
****
***
**
For example:
test1 5 *****
****
***
**
*
/
Pitanje 3 Netočno Broj bodova: 0,00 od 20,00
Napišite funkciju "void ndesnih(struct cvor *root)" koja će izračunati i na ekran ispisati koliko ima čvorova u desnom podstablu od korijenskog čvora root.
Struktura cvor sastoji se od cjelobrojnog podatka X i pokazivača na lijevi i desni nasljednik (*lijevi, *desni).
Syntax Error(s)
Netočno
Dodijelite svakom čvoru njegove nasljednike (ako ih ima) za poredano binarno stablo predstavljeno ulaznim vektorom
[6,8,1,22,30,48,18,12,100,20,40,19].
20 19,-
12 -,-
48 40,100
30 -,48
8 -,22
19 -,-
40 -,-
6 1,8
1 -,-
22 18,30
18 12,80
100 -,-
Ispravan odgovor je: 20 → 19,-, 12 → -,-, 48 → 40,100, 30 → -,48, 8 → -,22, 19 → -,-, 40 → -,-, 6 → 1,8, 1 → -,-, 22 → 18,30, 18 → 12,80, 100 → -,-
/
Pitanje 5 Točno Broj bodova: 3,00 od 3,00
Točno
Netočno
Neka je zadan niz od 81830 podataka. Koliko će biti ponavljanja petlje kod algoritma binarnog pretraživanja?
(unesite samo brojčanu vrijednost: cijeli broj)
Odgovor: 17
Problem pretraživanja sortiranih nizova se rješava algoritmom binarnog pretraživanja. U O -notaciji ovaj algoritam ima logaritamsku složenost.
Ako je zadana rekurzivna funcija koja računa faktorijele: int fakt( int n ), koliko će biti rekurzivnih poziva ako ju pozovemo s fakt( 949 )?
Odgovor: 949
Hrpa ili gomila je nelinearna struktura podataka. Hrpa je poseban oblik binarnog stabla.
/
Pitanje 10 Djelomično točno Broj bodova: 12,00 od 18,00
NAPOMENA:
**Nad početnim stablom se počinju izvršavati operacije što znači da se početno stablo također računa kao jedan korak!
True False
/
Pitanje 1 Točno Broj bodova: 20,00 od 20,00
Napisati funkciju "void usporedi( oe *p1, oe *p2 )" koja uspoređuje dvije liste i ispisuje "DA" ako
su liste potpuno iste, "NE" ako imaju bilo koji element različit.
Osnovni element liste oe se sastoji od cjelobrojnog podatka 'x', te pokazivača na isti takav osnovni
element 'sljedeci'.
Npr. ako je prva povezana lista: 1,7,12,5,4, druga 1,7,12,5,4, onda funkcija treba ispisati "DA".
Npr. ako je prva povezana lista: 9,7,13, druga 1,7,,5,4, onda funkcija treba ispisati "NE".
test1 1 DA DA
Točno
/
Pitanje 2 Točno Broj bodova: 20,00 od 20,00
Napiši rekurzivnu funkciju "int obrniznam(int n)" koja će obrnuti zanemnke cijelog broja n. Npr.
ako je n=531, funkcija treba vratiti 135.
For example:
test1 5 5 5
Točno
/
Pitanje 3 Točno Broj bodova: 20,00 od 20,00
r->desni = p;
//vaš kod
1 else if ((r -> desni != NULL) && (p->X > r-> X)) {
2 ubaci (r->desni, p);
3 }
4 if ((r->lijevi == NULL) && (p->X < r->X)) {
5 r->lijevi = p;
6 }
7 else if ((r->lijevi != NULL) && (p->X < r-> X)) {
8 ubaci (r->lijevi, p);
9 }
Točno
/
Pitanje 4 Točno Broj bodova: 7,00 od 7,00
NLD 50,17,9,14,12,23,19,76,54,72,67
LDN 12,14,9,19,23,17,67,72,54,76,50
LND 9,12,14,17,19,23,50,54,67,72,76
/
Pitanje 5 Točno Broj bodova: 3,00 od 3,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 (V[s]<x) gg = s-1;
10. if (V[s]<x) dg = s+1;
11. if (dg>=gg) {
12. printf( "%d nije pronadjen!\n", x );
13. exit( 1 );
14. }
15. }
Odgovor: 9
Točno
Netočno
/
Pitanje 7 Točno Broj bodova: 3,00 od 3,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 (s==x) {
6. printf( "%d Pronadjen! Na %d. poziciji u nizu.\n", x, s );
7. exit( 0 );
8. }
9. if (V[s]<x) gg = s-1;
10. if (V[s]>x) dg = s+1;
11. if (dg>=gg) {
12. printf( "%d nije pronadjen!\n", x );
13. exit( 1 );
14. }
15. }
Odgovor: 5
Rekurzivna funkcija ili procedura može imati samo jedan osnovni slučaj kada se ne poziva
rekurzivno.
Točno
Netočno
/
Pitanje 9 Točno Broj bodova: 3,00 od 3,00
Mjehurićasti (bubble) sort je sporiji od Heap Sort algoritma (brži ili sporiji). Složenost Bubble
2
Sort algoritma je O( N ), a tu složenost nazivamo još i kvadratna vremenska složenost.
Točno
Netočno
Rekurzivne funkcije ili procedure mogu pozivati samu sebe samo jednom.
Točno
Netočno
/
Pitanje 1 Djelomično točno Broj bodova: 4,00 od 20,00
Napisati funkciju "void pretraziZnamenku( oe *prvi, int n )" koja će iszračunati i ispisati
koliko ima elemenata u povezanoj listi koji imaju bilo koju znamenku jednaku jednoznamenkastom
parametru n.
Osnovni element liste oe se sastoji od cjelobrojnog podatka 'x', te pokazivača na isti takav osnovni
element 'sljedeci'.
Npr. ako je povezana lista sadrži vrijednosti: 1,72,21,5,624 i n=2, onda funkcija treba ispisati 3, zato što u
72, 21 i 624 imamo znamenku 2.
test1 1, 8 5 4
Show di erences
Djelomično točno
/
Pitanje 2 Djelomično točno Broj bodova: 9,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;
Syntax Error(s)
Djelomično točno
Komentar:
/
Pitanje 3 Netočno Broj bodova: 0,00 od 20,00
Napišite funkciju "void nlijevih(struct cvor *root)" koja će izračunati i na ekran ispisati koliko
Struktura cvor sastoji se od cjelobrojnog podatka X i pokazivača na lijevi i desni nasljednik (*lijevi,
*desni).
/
Pitanje 4 Točno Broj bodova: 7,00 od 7,00
LDN 35,42,20,18,16,55,43,44,90,85
NLD 85,44,35,43,18,20,42,55,16,90
LND 35,44,20,42,18,43,55,16,85,90
/
Pitanje 7 Točno Broj bodova: 3,00 od 3,00
Ima složenost O( n )
Točno
Netočno
Točno
Netočno
/
Pitanje 1 Djelomično točno Broj bodova: 8,00 od 20,00
Napisati funkciju "void obrisiNeparne( oe *prvi )" koja briše sve elemente cjelobrojne povezane
liste koji su neparni.
Osnovni element liste oe se sastoji od cjelobrojnog podatka 'x', te pokazivača na isti takav osnovni
element 'sljedeci'.
test3 3
test4 4 18
test5 5
Djelomično točno
/
Pitanje 6 Točno Broj bodova: 3,00 od 3,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 (V[s]<x) gg = s-1;
10. if (V[s]>x) dg = s+1;
11. if (dg>=gg) {
12. printf( "%d nije pronadjen!\n", x );
13. exit( 1 );
14. }
15. }
Odgovor: 2
/
Pitanje 9 Netočno Broj bodova: 0,00 od 3,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.
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[0], V[i] );
7. NH++;
8. UHRPI( 0 );
9. }}
Međutim ova procedura ima grešku. Napišite u kojoj je liniji greška!