/ Published in: C++
Ovo je header u kojem je radjena implementacija liste pomocu pokazivaca.
Expand |
Embed | Plain Text
#include <iostream> using namespace std; struct tzivotinja{ int sifra; char vrsta[30]; char naziv[30]; float cijena; int datum; }; struct tlista{ tzivotinja zivotinja; tlista *sljedeci; }; typedef tlista* el; tlista *FirstL(tlista *glava){ return glava->sljedeci; } tlista *EndL(tlista *glava){ el zadnji; zadnji=glava; while(zadnji->sljedeci)zadnji=zadnji->sljedeci; return zadnji->sljedeci; } tlista *NextL(el p,tlista *glava){ return p->sljedeci; } tlista *PreviousL(el p,tlista *glava){ if(p==FirstL(glava)) cout << "Funkcija je nedefinirana!" << endl; else if(p==EndL(glava)) return p; else{ tlista *tekuci,*prethodni; tekuci=glava->sljedeci; prethodni=glava; while(p!=tekuci){ tekuci=tekuci->sljedeci; prethodni=prethodni->sljedeci;} return prethodni; } } tlista *LocateL(char x[30], tlista *glava){ tlista *tekuci; tekuci=glava->sljedeci; while(tekuci){ if(strcmp(tekuci->zivotinja.naziv,x)==0) return tekuci; if(strcmp(tekuci->zivotinja.vrsta,x)==0) return tekuci; tekuci=tekuci->sljedeci; } cout<<"takav element ne postoji!"<<endl; return EndL(glava); }; void InsertL(tzivotinja x,el pozicija,tlista *glava){ el novi,prethodni,tekuci; prethodni=glava; tekuci=glava->sljedeci; while(tekuci!=pozicija){ tekuci=tekuci->sljedeci; prethodni=prethodni->sljedeci;} novi=new tlista; novi->sljedeci=prethodni->sljedeci; prethodni->sljedeci=novi; novi->zivotinja=x; }; void DeleteL(el p,tlista *glava){ el brisi,prethodni; prethodni=glava; brisi=glava->sljedeci; while(brisi!=p){ prethodni=prethodni->sljedeci; brisi=brisi->sljedeci;} if(brisi==p){ prethodni->sljedeci=brisi->sljedeci; delete brisi; } else cout<<"Nema tog elementa!"<<endl; }; tzivotinja RetreiveL(el p,tlista *glava){ tlista *trazeni; trazeni=glava; while(trazeni!=p){ trazeni=trazeni->sljedeci;} if(trazeni==p){return trazeni->zivotinja;} else cout<<"Nema tog elementa"<<endl; }; void DeleteAllL(tlista *glava){ tlista *brisi=glava; while(glava->sljedeci!=NULL) { brisi=glava->sljedeci; glava->sljedeci=brisi->sljedeci; delete brisi; } }; void InitL(tlista *glava){ glava->sljedeci=NULL; }
You need to login to post a comment.
