/ Published in: C++
Ovo je implementacija liste pomocu polja.
Expand |
Embed | Plain Text
#include <iostream> using namespace std; struct tzivotinja{ int sifra; char vrsta[30]; char naziv[30]; float cijena; int datum; }; struct tlista{ tzivotinja zivotinja[1000]; int sljedeci; }; typedef int el; el EndL(tlista *glava){ return glava->sljedeci; } el FirstL(tlista *glava){ if(glava->sljedeci==0) return EndL(glava); return 0; }; el NextL(el p,tlista *glava){ if (p==EndL(glava)-1) return EndL(glava); else return p+1; } el PreviousL(el p,tlista *glava){ if(p==FirstL(glava)) cout << "Funkcija je nedefinirana!" << endl; else if(p==EndL(glava)) return EndL(glava)-1; else return p-1; } el LocateL(char x[30], tlista *glava){ for(int i=0;i<1000;i++){ if( (strcmp(glava->zivotinja[i].naziv,x))==0) return i; if( (strcmp(glava->zivotinja[i].vrsta,x))==0) return i; } return EndL(glava); }; void InsertL(tzivotinja x, el p, tlista *glava){ if(glava->sljedeci!=0){ for(el i=EndL(glava);i>p;i--){ glava->zivotinja[i]=glava->zivotinja[i-1];} glava->zivotinja[p]=x;} else{ glava->zivotinja[p]=x;} glava->sljedeci+=1; }; void DeleteL(el p, tlista *glava){ for(el i=p;i<EndL(glava);i++){ glava->zivotinja[i]=glava->zivotinja[i+1];} glava->sljedeci-=1; }; tzivotinja RetreiveL(el x, tlista *glava){ return glava->zivotinja[x]; }; void DeleteAllL(tlista *glava){ glava->sljedeci=0; }; void InitL(tlista *glava){ glava->sljedeci=0; };
You need to login to post a comment.
