/ Published in: C++
biblioteka lista pokazivac potreba za zad1 iz sp
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include <iostream> using namespace std; struct pzivotinja { int sifra,dan,mjesec,godina; char naziv[40]; char vrsta[40]; float cijena; }; struct tzoo { pzivotinja*element; tzoo*sljedeci; }; tzoo*novi; pzivotinja* FirstL(tzoo*lista) { return lista->sljedeci->element; } int EndL(tzoo*lista) { return 0; } tzoo*NextL(int p, tzoo*lista) { tzoo*zadnji=lista; int brojac=0; while(brojac<p&&zadnji!=NULL) { zadnji=zadnji->sljedeci; brojac++; } if(zadnji==NULL)return NULL; else return zadnji->sljedeci; } tzoo*PreviousL(int p, tzoo*lista) { tzoo*zadnji=lista; int brojac=0; p-=2; while(brojac<p&&zadnji!=NULL) { zadnji=zadnji->sljedeci; brojac++; } if(zadnji==NULL)return NULL; else return zadnji->sljedeci; } tzoo*LocateL(int n,tzoo*lista) { tzoo*zadnji=lista->sljedeci; while(zadnji!=NULL) { if(zadnji->element->sifra==n) { cout<<"PRONADJENO!\n"; return zadnji; } else zadnji=zadnji->sljedeci; } cout<<"NIJE PRONADJENO!\n"; return NULL; } void InsertL(pzivotinja*novi, int p, tzoo*lista) { tzoo*zadnji = lista; tzoo*novi3=new tzoo; novi3->element=novi; novi3->sljedeci=NULL; int brojac=0; while(brojac<p&&zadnji!=NULL) { zadnji=zadnji->sljedeci; brojac++; } if(brojac<p){ cout<<"Ne mogu dodati na to mjesto!\n"; return; } if(zadnji->sljedeci!=NULL) { novi3->sljedeci=zadnji->sljedeci; zadnji->sljedeci=novi3; } else zadnji->sljedeci=novi3; } int DeleteL(int p, tzoo*lista) { tzoo*zadnji=lista; bool pogresan=false; int brojac=0; while(brojac<p-1) { zadnji=zadnji->sljedeci; if(!zadnji->sljedeci) { pogresan=true; break; } brojac++; } if(pogresan==true)cout<<"Taj element ne postoji!\n"; if(!pogresan){ tzoo*brisani_element=zadnji->sljedeci; zadnji->sljedeci=zadnji->sljedeci->sljedeci; delete brisani_element; } return 0; } pzivotinja * RetrieveL(int p,tzoo*lista) { tzoo*zadnji=lista; int brojac=0; while(brojac<p&&zadnji!=NULL) { zadnji=zadnji->sljedeci; brojac++; } return zadnji->element; } tzoo* InitL(tzoo*lista) { lista= new tzoo; lista->sljedeci=NULL; return lista; } void DeleteAll(tzoo*lista) { tzoo*zadnji=lista->sljedeci; while(zadnji->sljedeci) { novi=zadnji->sljedeci; delete zadnji; zadnji=novi; } delete zadnji; lista->sljedeci=NULL; } int NumberL(tzoo*lista) { tzoo*zadnji=lista; int brojac=0; while(zadnji->sljedeci) { zadnji=zadnji->sljedeci; brojac++; } return brojac; } pzivotinja*UnosL(pzivotinja*novi) { cout<<"Sifra= "; cin>>novi->sifra; cout<<"Vrsta= "; cin>>novi->vrsta; cout<<"Naziv= "; cin>>novi->naziv; cout<<"Cijena= "; cin>>novi->cijena; do{ cout<<"Dan dostave= "; cin>>novi->dan; } while(novi->dan<1||novi->dan>31); do{ cout<<"Mjesec dostave= "; cin>>novi->mjesec; } while(novi->mjesec<1||novi->mjesec>12); cout<<"Godina dostave= "; cin>>novi->godina; } pzivotinja*IspisL(pzivotinja*novi){ cout<<"=====================\n"; cout<<"Zivotinja\n"; cout<<"---------------------\n"; cout<<"Sifra= "<<novi->sifra<<endl; cout<<"Vrsta= "<<novi->vrsta<<endl; cout<<"Naziv= "<<novi->naziv<<endl; cout<<"Datum= "<<novi->dan<<"."<<novi->mjesec<<"."<<novi->godina<<endl; cout<<"Cijena= "<<novi->cijena<<endl; }