/ Published in: C++
implementacija liste pomocu polja za 1. zadatak iz kolegija Strukture podataka 2012/2013
Expand |
Embed | Plain Text
#include <iostream> using namespace std; struct zivotinje { int sifra, datum; char vrsta[20], naziv[40]; float cijena; }; struct tLista{ zivotinje zivotinja[1000]; int kursor; }; typedef int element; element EndL(tLista *L){ return L -> kursor; } element FirstL(tLista *L){ return 0; } element PreviousL(element p, tLista *L){ if( p == FirstL(L)) return -1; return p-1; } element NextL(element p, tLista *L){ if(p == PreviousL(EndL(L),L)) return EndL(L); return p+1; } element LocateL(zivotinje x, tLista *L){ int j; for(j=0; j<EndL(L); j++){ if(x.naziv!=0){ if(x.naziv == L -> zivotinja[j].naziv) return j; } else if(x.vrsta!=0){ if(x.vrsta == L -> zivotinja[j].vrsta) return j; } } return EndL(L); } element InsertL(zivotinje x, element p, tLista *L){ int j; for(j=EndL(L); j>p; j--) L -> zivotinja[j] = L -> zivotinja[j-1]; L -> zivotinja[p]=x; L -> kursor = L-> kursor+1; if(L-> zivotinja[p].sifra==x.sifra) return 1; else return 0; } element DeleteL(element p, tLista *L){ int j; int pom= L -> kursor; for(j=p; j<EndL(L); j++) L -> zivotinja[j]= L -> zivotinja[j+1]; if(p!=EndL(L)) L -> kursor = L -> kursor-1; if(pom!= L-> kursor) return 1; else return 0; } zivotinje RetrieveL(element p, tLista *L){ return L ->zivotinja[p]; } element DeleteAllL(tLista *L){ L -> kursor = 0; return 1; } tLista* InitL(tLista *L){ L = new tLista; L -> kursor = 0; return L; }
You need to login to post a comment.
