/ Published in: C++
biblioteka pokazivaca
Expand |
Embed | Plain Text
struct tdatum{ int dan,godina; char mjesec[15]; }; struct elem{ int sifra,cijena; char vrsta[30],naziv[30]; tdatum datum; }; 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; } int EndL(lis *lista) { lis* tekuci=lista; int po=0; while(tekuci->sljedeci) { tekuci=tekuci->sljedeci; po++; } return po; } int FirstL(lis* lista) { if(lista->sljedeci==NULL) return EndL(lista); return 0; } void InsertL(elem x,int po,lis *lista) { lis *zadnji=lista; for(int i=0;i<po;i++) zadnji=zadnji->sljedeci; lis *novi = new lis; zadnji->sljedeci=novi; novi->zivotinja=x; novi->sljedeci=NULL; } void DeleteL(int po, lis *lista){ lis *brisi = lista->sljedeci,*prethodni=lista; for(int i=0;i<po;i++){ prethodni=brisi; brisi=brisi->sljedeci; } prethodni->sljedeci=brisi->sljedeci; delete brisi; } int LocateL(char b[],lis* lista) { lis *tekuci=lista; int po=0; while(tekuci) { if(tekuci->sljedeci==NULL) return EndL(lista); if(!strcmp((tekuci->sljedeci)->zivotinja.naziv,b)||(v==1&&!strcmp((tekuci->sljedeci)->zivotinja.vrsta,b))) return po; tekuci=tekuci->sljedeci; po++; } return EndL(lista); } elem RetrieveL(int po,lis* lista) { lis *tekuci = lista->sljedeci; for(int i=0;i<po;i++) tekuci=tekuci->sljedeci; return tekuci->zivotinja; } int PreviousL(int po,lis* lista) { if(po==FirstL(lista)) return -1; return po-1; } int NextL(int po,lis* lista) { if(po==EndL(lista)) return -1; if(po==PreviousL(EndL(lista),lista)) return EndL(lista); return po+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 a,int po, lis* lista) { lis* tekuci=lista->sljedeci; for(int i=0;i<po;i++) tekuci=tekuci->sljedeci; tekuci->zivotinja=a; }
You need to login to post a comment.
