/ Published in: C++
U ovoj biblioteci su definirane funkcije za izvršavanje operacija nad ATP listom: iniciranje prazne liste(InitL), funkcije koje vraćaju pozicije prvog i zadnjeg elementa(FirstL i EndL), funkcija za umetanje elementa(InsertL), funkcija koja vraća vrijednost elementa na nekoj poziciji(RetrieveL) te funkcije za brisanje pojedinog elementa(DeleteL) ili cijele liste(DeleteAllL).
Expand |
Embed | Plain Text
typedef int element; struct elementtype{ int sifra; char naziv[30]; char vrsta[30]; float cijena; struct{ int dan, mjesec, godina; }datum_dostave; }; struct Lis { elementtype values[10000]; int cursor; }; typedef struct Lis list; list* InitL(list* L){ if(L == NULL){ L=new list; L->cursor = 0; } else{ L->cursor = 0; } return L; } element FirstL(list* L){ return 0; } element EndL(list* L){ return L->cursor; } element NextL(element p, list* L){ if(p == L->cursor) return L->cursor; return p+1; } element PreviousL(element p, list* L){ if(p==0) return 0; return p-1; } element LocateL(elementtype el, list* L){ for(element current = FirstL(L); current != EndL(L); current = NextL(current,L)){ if(el.sifra == L->values[current].sifra) return current; } return EndL(L); } void InsertL(elementtype el, element p, list* L){ for(element current = L->cursor; current > p; current--){ L->values[current] = L->values[current-1]; } L->values[p] = el; L->cursor++; } void DeleteL(element p, list* L){ for(element current = p; current < L->cursor-1; current++){ L->values[current] = L->values[current+1]; } L->cursor--; } elementtype RetrieveL(element p, list* L){ return L->values[p]; } void DeleteAllL(list* L){ L->cursor=0; }
You need to login to post a comment.
