/ Published in: C++
datoteka zaglavlja s funkcijama za implementaciju liste pomoću polja
Expand |
Embed | Plain Text
struct zivotinja2{ int sifra; char vrsta[20],naziv[20]; float cijena; char datum[15]; }; union zivotinja{ zivotinja2 P[100]; int kursor; }; typedef zivotinja2 pomocna; typedef int tip; zivotinja* InitL(zivotinja *lista){ lista = new zivotinja; lista->kursor=0; return lista; } int EndL(zivotinja *lista){ return lista->kursor; } int FirstL(zivotinja *lista){ if(lista->kursor==0) return EndL(lista); return 0; } int NextL(int p, zivotinja *lista){ if(p>=lista->kursor || p<0) return 0; // nije definirana funkcija return p+1; } int PreviousL(int p, zivotinja *lista){ if(p>lista->kursor || p<0) return 0; // nije definirana funkcija return p-1; } int LocateL(int sifra, zivotinja *lista){// trazi sifru int index=0; while(index<lista->kursor){ if(lista->P[index].sifra==sifra) return index; index++; } return EndL(lista); } bool InsertL(zivotinja2 pomocna2, int p, zivotinja *lista){// na p dodajemo pomocna if(p > lista->kursor) return false; /*else { //if(p!=EndL(lista)) p+=1; int pom=lista->kursor; while(p<pom){ lista->P[pom].sifra=lista->P[pom-1].sifra; lista->P[pom].cijena=lista->P[pom-1].cijena; std::cout << "hauk"; strcpy(lista->P[pom].datum,lista->P[pom-1].datum); strcpy(lista->P[pom].vrsta,lista->P[pom-1].vrsta); strcpy(lista->P[pom].naziv,lista->P[pom-1].naziv); pom--; } std::cout << "hauk2";*/ lista->P[p].sifra=pomocna2.sifra; lista->P[p].cijena=pomocna2.cijena; strcpy(lista->P[p].datum,pomocna2.datum); strcpy(lista->P[p].vrsta,pomocna2.vrsta); strcpy(lista->P[p].naziv,pomocna2.naziv); lista->kursor++; return true; //} } zivotinja2 RetrieveL(int p, zivotinja *lista){ if (p<lista->kursor && p>=0) { zivotinja2 pom; pom.sifra=lista->P[p].sifra; pom.cijena=lista->P[p].cijena; strcpy(pom.datum,lista->P[p].datum); strcpy(pom.vrsta,lista->P[p].vrsta); strcpy(pom.naziv,lista->P[p].naziv); return pom; } } bool DeleteL(int p, zivotinja *lista){ if (p<lista->kursor && p>=0) { int pom=p; while(pom<lista->kursor){ lista->P[pom].sifra=lista->P[pom+1].sifra; lista->P[pom].cijena=lista->P[pom+1].cijena; strcpy(lista->P[pom].datum,lista->P[pom+1].datum); strcpy(lista->P[pom].vrsta,lista->P[pom+1].vrsta); strcpy(lista->P[pom].naziv,lista->P[pom+1].naziv); pom--; } lista->kursor--; return true; } else return false; } void DeleteAllL(zivotinja *lista){ lista->kursor=0; }
You need to login to post a comment.
