/ Published in: C++
Datoteka zaglavlja koja sadrži osnovne funkcije za rad s elementima liste implementirane pomoću pokazivaÄa.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
struct tdatum { int dan,godina; char mjesec[10]; }; struct elem { int sifra; char vrsta[35],naziv[35]; tdatum datum; float cijena; }; struct lis { elem zivotinja; lis *sljedeci; }; lis *lista=new lis; int sifra=1,br_elem=0,v=0; void InitL(lis *lista) { lista->sljedeci=NULL; } void InsertL(elem x,int p,lis *lista) { lis *zadnji=lista; for(int i=0;i<p;i++) zadnji=zadnji->sljedeci; lis *novi = new lis; zadnji->sljedeci=novi; novi->zivotinja=x; novi->sljedeci=NULL; } elem RetrieveL(int p,lis* lista) { lis *tekuci = lista->sljedeci; for(int i=0;i<p;i++) tekuci=tekuci->sljedeci; return tekuci->zivotinja; } int EndL(lis *lista) { lis* tekuci=lista; int p=0; while(tekuci->sljedeci) { tekuci=tekuci->sljedeci; p++; } return p; } void DeleteL(int p, lis *lista) { lis *brisi = lista->sljedeci,*prethodni=lista; for(int i=0;i<p;i++) { prethodni=brisi; brisi=brisi->sljedeci; } prethodni->sljedeci=brisi->sljedeci; delete brisi; } int LocateL(char x[],lis* lista) { lis *tekuci=lista; int p=0; while(tekuci) { if(tekuci->sljedeci==NULL) return EndL(lista); if(!strcmp((tekuci->sljedeci)->zivotinja.naziv,x)||(v==1&&!strcmp((tekuci->sljedeci)->zivotinja.vrsta,x))) return p; tekuci=tekuci->sljedeci; p++; } return EndL(lista); } int FirstL(lis* lista) { if(lista->sljedeci==NULL) return EndL(lista); return 0; } int PreviousL(int p,lis* lista) { if(p==FirstL(lista)) return -1; return p-1; } int NextL(int p,lis* lista) { if(p==EndL(lista)) return -1; if(p==PreviousL(EndL(lista),lista)) return EndL(lista); return p+1; } void DeleteAll(lis* lista) { lis* prethodni=lista,*tekuci=lista->sljedeci; while(tekuci) { delete prethodni; prethodni=tekuci; tekuci=tekuci->sljedeci; } delete prethodni; lista=NULL; } void Vrati(elem x,int p, lis* lista) { lis* tekuci=lista->sljedeci; for(int i=0;i<p;i++) tekuci=tekuci->sljedeci; tekuci->zivotinja=x; }