/ Published in: C++
Zaglavlje lista_polje.h
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
struct s_datum { unsigned int dan; unsigned int mjesec; unsigned int godina; }; struct s_zapis { short sifra; char vrsta[50]; char naziv[50]; float cijena; s_datum datum; }; struct lista { s_zapis zapis[100]; int cursor; }; typedef int element; element EndL(lista *L) { return L->cursor; } element FirstL(lista *L) { if (L->cursor == NULL) return EndL(L); else return 0; } element NextL(element p, lista *L) { if (p == EndL(L)) return -1; else return p+1; } element PreviousL(element p, lista *L) { if (p == FirstL(L)) return -1; else return p-1; } element LocateL(s_zapis X, lista *L) { for (int i=0; i < EndL(L); i++) if (!strcmp(X.vrsta, L->zapis[i].vrsta)) return i; else if (!strcmp(X.naziv, L->zapis[i].naziv)) return i; return EndL(L); } bool InsertL(s_zapis X, element p, lista *L) { if (p > L->cursor) return false; else { for (int i=L->cursor; i >= p; i--) { L->zapis[i+1] = L->zapis[i]; } L->zapis[p] = X; L->cursor++; return true; } } bool DeleteL(element p, lista *L) { if (p > L->cursor) return false; for (int i=p; i<L->cursor; i++) { L->zapis[i] = L->zapis[i+1]; } L->cursor--; return true; } s_zapis RetrieveL(element p, lista *L) { return L->zapis[p]; } lista *InitL(lista *L) { L = new lista; L->cursor = 0; return L; }