/ Published in: C++
implementacija trgovine kucnim ljubimcima preko pokazivaca... sadrzi funkcije poput FirstL(L), EndL(L),NextL(p,L),PreviousL(p,L), LocateL(x,L), InsertL(x,p,L), DeleteL(p,L), RetreiveL(p,L), DeleteAllL(L) i InitL(L) nazivima prilagodenim za zadatak...
Expand |
Embed | Plain Text
#include <iostream> using namespace std; struct zivotinje { int sifra; char vrsta[30],naziv[30]; float cijena; int datum; }; struct li{ zivotinje elem; li *sljedeci; }; typedef li *element; typedef li lista; element kraj_liste(lista *l){ element posljednji=l; while(posljednji->sljedeci!=NULL) posljednji=posljednji->sljedeci; return posljednji; } element pocetak_liste(lista *l){ if ((*l).sljedeci==0) return kraj_liste(l); else return l->sljedeci; } element sljedeca_zivotinja(element p, lista *l){ if(p->sljedeci==NULL) return kraj_liste(l); else return p->sljedeci; } element prethodna_zivotinja(element p, lista *l){ lista *tekuci=l->sljedeci; while(p!=tekuci->sljedeci && tekuci->sljedeci!=NULL) tekuci=tekuci->sljedeci; return tekuci; } element lociranje_zivotinje_naziv(zivotinje x, lista *l){ element tekuci=l; if(tekuci->sljedeci==0){ cout<<"Lista je prazna..."<<endl; exit(0); } else{ while(tekuci!=kraj_liste(l)){ if(strcmp(x.naziv,tekuci->elem.naziv)==0) return tekuci; tekuci=tekuci->sljedeci; } } } element lociranje_zivotinje_vrsta(zivotinje x, lista *l){ element tekuci=l; if(tekuci->sljedeci==0){ cout<<"Lista je prazna..."<<endl; exit(0); } else{ while(tekuci!=kraj_liste(l)){ if(strcmp(x.vrsta,tekuci->elem.vrsta)==0) return tekuci; tekuci=tekuci->sljedeci; } } } int upis_zivotinje(zivotinje x, lista *p, lista *l){ lista *tekuci=p; lista *novi=new lista; if(p==kraj_liste(l)){ novi->sljedeci=NULL; tekuci->sljedeci=novi; tekuci->elem=x; } else if (p==pocetak_liste(l)){ novi->sljedeci=tekuci; l->sljedeci=novi; novi->elem=x; } else { lista *prethodni=prethodna_zivotinja(p,l); novi->sljedeci=tekuci; prethodni->sljedeci=novi; novi->elem=x; } if(tekuci->elem.sifra==x.sifra) return 1; else return 0; } int brisanje_zivotinje( element p, lista *l){ element prethodni, tekuci; tekuci=p; if (p==pocetak_liste(l)){ l->sljedeci=tekuci->sljedeci; delete tekuci; return 1; } else{ prethodni= prethodna_zivotinja(tekuci,l); prethodni->sljedeci=tekuci->sljedeci; delete tekuci; return 1; } return 0; } zivotinje vrijednost_zivotinje_u_listi(element p, lista*l){ return p->elem; } void brisanje_liste(lista *l){ lista *obrisi= l->sljedeci; if(obrisi==0) return; lista *s=obrisi->sljedeci; while(s){ delete obrisi; obrisi=s; s=obrisi->sljedeci; } delete obrisi; } lista *inicijalizacija_liste(lista *l){ l=new lista; lista *zadnji=new lista; l->sljedeci=zadnji; zadnji->sljedeci=NULL; return l; }
You need to login to post a comment.
