/ Published in: C++
Biblioteka lista_pokazivac.h
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
//implementacija pomocu pokazivaca #include <iostream> using namespace std; void text(char *ime){ cin.getline(ime,30); if(cin.gcount()==1) cin.getline(ime,30); } struct pzivotinja{ int sifra,dan,mjesec,godina; float cijena; char naziv[20], vrsta[20]; }; struct tzivotinja{ pzivotinja*element; tzivotinja*sljedeci; }; tzivotinja *novi; tzivotinja *FirstL(tzivotinja *lista){ tzivotinja *zadnji; zadnji=lista; return zadnji->sljedeci; } int EndL(tzivotinja*lista){ return 0; } tzivotinja *NextL(int p, tzivotinja *lista){ tzivotinja*zadnji; zadnji=lista; int brojac=0; while(brojac<p){ zadnji=zadnji->sljedeci; brojac++; } return zadnji->sljedeci; } tzivotinja *PreviousL(int p, tzivotinja *lista){ tzivotinja *zadnji; zadnji=lista; int brojac=0; p-=2; while(brojac<p){ zadnji=zadnji->sljedeci; brojac++; } return zadnji->sljedeci; } tzivotinja *LocateL(int n,tzivotinja *lista){ tzivotinja *zadnji; zadnji=lista; while(zadnji->sljedeci){ novi=zadnji->sljedeci; if(novi->element->sifra==n){ cout<<"PRONADJENO!\n"; return zadnji->sljedeci; } else zadnji=zadnji->sljedeci; } cout<<"NIJE PRONADJENO!\n"; return NULL; } void InsertL(pzivotinja *novi, int p, tzivotinja*lista){ tzivotinja*zadnji; zadnji = lista; tzivotinja *novi3=new tzivotinja; novi3->element=novi; novi3->sljedeci=NULL; int brojac=0; while(brojac<p){ zadnji=zadnji->sljedeci; brojac++; } if(zadnji->sljedeci){ novi3->sljedeci=zadnji->sljedeci; zadnji->sljedeci=novi3; } else zadnji->sljedeci=novi3; } int DeleteL(int p, tzivotinja*lista){ tzivotinja*zadnji; zadnji=lista; bool pogresan; int brojac=0; while(brojac<p-1){ zadnji=zadnji->sljedeci; if(!zadnji->sljedeci){ pogresan=true; break; } brojac++; } if(pogresan)cout<<"Taj element ne postoji!\n"; if(!pogresan){ novi=zadnji; zadnji=zadnji->sljedeci; novi->sljedeci=zadnji->sljedeci; delete zadnji; } return 0; } pzivotinja * RetrieveL(int p,tzivotinja *lista){ tzivotinja *zadnji; zadnji=lista; int brojac=0; while(brojac<p){ zadnji=zadnji->sljedeci; brojac++; } return zadnji->element; } tzivotinja* InitL(tzivotinja *lista){ tzivotinja *zadnji; lista= new tzivotinja; zadnji=new tzivotinja; lista->sljedeci=zadnji; zadnji->sljedeci=NULL; return lista->sljedeci; } void DeleteAll(tzivotinja *lista){ tzivotinja *zadnji; zadnji=lista->sljedeci; while(zadnji->sljedeci){ novi=zadnji->sljedeci; delete zadnji; zadnji=novi; } delete zadnji; lista->sljedeci=NULL; } int NumberL(tzivotinja *lista){ tzivotinja *zadnji; zadnji=lista; int brojac=0; while(zadnji->sljedeci){ zadnji=zadnji->sljedeci; brojac++; } return brojac; } pzivotinja *UnosL(int a,pzivotinja *novi){ int velicina=a; novi->sifra=velicina; cout<< "-----------UNOS------------\n" ; cout<<"Unesite zivotinju pod sifrom " << novi->sifra << endl; cout << "Vrsta zivotinje : "; text(novi->vrsta); cout<<endl; cout<< "Naziv zivotinje : " ; text(novi->naziv); cout<<endl; cout << "Cijena zivotinje :" << ((novi->sifra+1)*100) ; novi->cijena =(novi-> sifra+1)*100; cout<<endl; cout <<"Datum dostave zivotinje (dd.mm.gggg) :" ; do{ cout<< " Dan unosa(1.-31.): " ; cin>>novi->dan ; cout<<endl; }while(novi->dan <0 || novi->dan >31); do{ cout << " Mjesec unosa (1.-12.): " ; cin >> novi->mjesec ; cout<<endl; }while(novi->mjesec <0 || novi->mjesec >12); do{ cout << " Godina unosa (2000-2020): " ; cin >> novi->godina; cout<<endl; }while(novi->godina <2000 || novi->godina >2020); cout <<"VAS ZAPIS JE USPJESNO DODAN !!! " << endl; /* cout<<"Sifra= "; cin>>novi->sifra; cout<<"Godina proizvodnje= "; cin>>novi->godina; cout<<"Maticni zaposlenika= "; cin>>novi->maticni; cout<<"Proizvodac racunala= "; cin>>novi->proizvodac; cout<<"Naziv racunala= "; cin>>novi->naziv;*/ }