You are on page 1of 2

Ispit iz predmeta Algoritmi i strukture podataka

9. rujan 2013.

Napomena za sve zadatke:


• Nije dopušteno korištenje goto naredbe, te statičkih i globalnih varijabli.

Zadatak 1 (5)

Jedan zapis datoteke organizirane po načelu raspršenog adresiranja definiran je strukturom :


typedef struct{
int sifra;
char naziv[50+1];
double cijena;
}zapis;

Ključ zapisa je šifra artikla, a transformacija ključa u adresu obavlja se zadanom funkcijom:

int adresa(int sifra);

Zapis je prazan ako je na mjestu šifre vrijednost nula. Parametri za raspršeno adresiranje
nalaze se datoteci parametri.h a oni su:

 BLOK veličina bloka na disku


 MAXZAP broj zapisa
 C broj zapisa u jednom pretincu
 M broj pretinaca

Napisati funkciju koja će prebrojati broj praznih zapisa u pretincu s rednim brojem 10.

int dodaj(FILE *f, int broj);

Zadatak 2 (5)

Napisati rekurzivnu funkciju koja izračunava umnožak niza prirodnih brojeva od 1 do n


(1*2*3*4*5*6*...*n)

int umnozakNiz (int n);


Zadatak 3 (5)

Na stog realiziran poljem spremaju se podaci cjelobrojnog tipa (int). Već su napisane funkcije
za skidanje sa stoga i stavljanje na stog. Napisati dodatnu funkciju koja će izbaciti element
koji se nalazi na dnu stoga. Prototipi funkcija za stavljanje i skidanje elemenata sa stoga su:

typedef struct{
int polje[MAXSTOG];
int vrh;
}Stog;

int dodaj(int element, Stog *stog);


int skini(int *element, Stog *stog);
int funkcija (Stog *stog);

Zadatak 4 (5)

Zadana je jednostruko povezana lista čiji zapis sadrži šifru artikla (long), naziv artikla
(50+1 znak) i količinu na skladištu (int). Potrebno je napisati funkciju koja će zamijeniti
prva dva elemenata u listi. Prototip je:

int zamjena (cvor **glava);

Zadatak 5 (5)

Zadano je binarno stablo čiji čvor sadrži cijeli broj ( int ). Napisati rekurzivnu funkciju koja
izračunava broj listova u stablu. Prototip funkcije je

int brojListova(cvor *korijen);

You might also like