/ Published in: C++
Lista pokazivac
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
struct tdatum { int dan; int godina; int mjesec; }; struct objekt { int sifra; char vrsta[30]; char naziv[30]; tdatum datum; float cijena; }; struct lis { objekt zivotinja; lis *sljedeci; }; lis *LA=new lis; int sifra=1,br_objekt=0,v=0; void InitL(lis *LA) { LA->sljedeci=NULL; } void InsertL(objekt x,int p,lis *LA) { lis *zadnji=LA; for(int i=0;i<p;i++) zadnji=zadnji->sljedeci; lis *novi = new lis; zadnji->sljedeci=novi; novi->zivotinja=x; novi->sljedeci=NULL; } objekt RetrieveL(int p,lis* LA) { int i; lis *tekuci = LA->sljedeci; for(i=0;i<p;i++) tekuci=tekuci->sljedeci; return tekuci->zivotinja; } int EndL(lis *LA) { lis* tekuci=LA; int p=0; while(tekuci->sljedeci) { tekuci=tekuci->sljedeci; p++; } return p; } void DeleteL(int p, lis *LA) { lis *brisi = LA->sljedeci,*prethodni=LA; for(int i=0;i<p;i++) { prethodni=brisi; brisi=brisi->sljedeci; } prethodni->sljedeci=brisi->sljedeci; delete brisi; } int LocateL(char x[],lis* LA) { lis *tekuci=LA; int p=0; while(tekuci) { if(tekuci->sljedeci==NULL) return EndL(LA); if(!strcmp((tekuci->sljedeci)->zivotinja.naziv,x)|| (v==1&&!strcmp((tekuci->sljedeci)->zivotinja.vrsta,x))) return p; tekuci=tekuci->sljedeci; p++; } return EndL(LA); } int FirstL(lis* LA) { if(LA->sljedeci==NULL) return EndL(LA); return 0; } int PreviousL(int p,lis* LA) { if(p==FirstL(LA)) return -1; return p-1; } int NextL(int p,lis* LA) { if(p==EndL(LA)) return -1; if(p==PreviousL(EndL(LA),LA)) return EndL(LA); return p+1; } void DeleteAll(lis* LA) { lis* prethodni=LA,*tekuci=LA->sljedeci; while(tekuci) { delete prethodni; prethodni=tekuci; tekuci=tekuci->sljedeci; } delete prethodni; LA=NULL; }
URL: http://e.foi.hr/wiki/strukture_podataka/index.php/Zadatak_1_Majcen_Marko