/ Published in: C++
Implementacija liste pomoću polja
Expand |
Embed | Plain Text
#include <iostream> using namespace std; struct date{ int dan; int mjesec; int godina; } datum; struct clan{ int sifra; char vrsta[50]; char naziv[50]; float cijena; date datum; }; struct lista{ clan zivotinja[10000]; int sljedeci; }; typedef int pokazivac; pokazivac DeleteAllL(lista *element){ element->sljedeci = 0; return element->sljedeci; } pokazivac EndL(lista *element){ return element->sljedeci; } pokazivac FirstL(lista *element){ if(element->sljedeci == 0) EndL(element); else return 0; } pokazivac PreviousL(pokazivac a, lista *element){ if(a!=FirstL(element)) return --a; else{ if(a==FirstL(element)) {cout << "Funkcija je nedefinirana!"; exit(0);} if(a==EndL(element)) EndL(element); } } pokazivac NextL(pokazivac a, lista *element){ if(a == PreviousL(EndL(element),element)) EndL(element); else return ++a; } pokazivac LocateL(clan target, lista *element){ for(int i=0; i<EndL(element);i++){ if(target.datum.dan!=0){ if(target.datum.godina==element->zivotinja[i].datum.godina && target.datum.mjesec == element->zivotinja[i].datum.mjesec && target.datum.dan == element->zivotinja[i].datum.dan) return i; } if(strlen(target.naziv)){ if(strcmp(target.naziv, element->zivotinja[i].naziv)==0) return i; } if(strlen(target.vrsta)){ if(strcmp(target.vrsta, element->zivotinja[i].vrsta)==0) return i; } } return EndL(element); } bool InsertL(clan novi, pokazivac a, lista *element){ if(a==EndL(element)){ element->zivotinja[a] = novi; element->sljedeci++; } else{ for(int j=EndL(element);j>=a;j--) element->zivotinja[j]=element->zivotinja[j-1]; element->zivotinja[a] = novi; element->sljedeci++; } if(element->zivotinja[a].sifra==novi.sifra) return 1; else return 0; } bool DeleteL(pokazivac a, lista *element){ if(element->sljedeci==0) return false; else{ while(a<EndL(element)){ element->zivotinja[a] = element->zivotinja[a+1]; a++; } element->sljedeci--; return true; } return false; } clan RetrieveL(pokazivac a, lista *element){ return element->zivotinja[a]; } lista *InitL(lista *element){ element->sljedeci = 0; }
You need to login to post a comment.
