/ Published in: C++
Zaglavlje sa implementacijom liste pomću pokazivaća. Sadrži funkcije za rad s listom.
Expand |
Embed | Plain Text
// IMPLEMENTACIJA LISTE POMOCU POKAZIVACA // using namespace std; struct Pljubimci{ int sifra; char vrsta[40]; char naziv[40]; int cijena; struct { int dan; int mjesec; int godina; }datum; }; struct Plista{ Pljubimci ljubimci; Plista *sljedeci; }; typedef Plista *element; element FirstL(Plista *B){ return B->sljedeci; } element EndL(Plista *B){ Plista *tekuci = B; while(tekuci->sljedeci) tekuci=tekuci->sljedeci; return tekuci; } element NextL(element p, Plista *B){ if(p->sljedeci==NULL) return EndL(B); return p->sljedeci; } element PreviousL(element p, Plista *B){ Plista *tekuci = B->sljedeci; while(p != tekuci->sljedeci && tekuci->sljedeci!=NULL) tekuci=tekuci->sljedeci; return tekuci; } element LocateL(Pljubimci a, Plista *B){ element tekuci; tekuci = B->sljedeci; while(tekuci){ if(a.sifra!=0){ if(a.naziv == tekuci->ljubimci.naziv) return tekuci; } tekuci = tekuci->sljedeci; } return EndL(B); } int InsertL(Pljubimci a, Plista *p, Plista *B){ Plista *tekuci = p; Plista *novi = new Plista; if(p==EndL(B)){ novi->sljedeci=NULL; tekuci->sljedeci = novi; tekuci->ljubimci = a; } else if(p==FirstL(B)){ novi->sljedeci = tekuci; B->sljedeci = novi; novi->ljubimci = a; } else{ Plista *prethodni = PreviousL(p,B); novi->sljedeci=tekuci; prethodni->sljedeci = novi; novi->ljubimci = a; } if(tekuci->ljubimci.sifra==a.sifra) return 1; else return 0; } int DeleteL(element p, Plista *B){ element prethodni, tekuci; tekuci = p; if(p==FirstL(B)){ B->sljedeci = tekuci->sljedeci; delete tekuci; return 1; } else{ prethodni = PreviousL(tekuci,B); prethodni->sljedeci = tekuci->sljedeci; delete tekuci; return 1; } return 0; } Pljubimci RetrieveL(element p, Plista *B){ return p->ljubimci; } element DeleteAllL(Plista *B){ B->sljedeci = EndL(B); } Plista* InitL(Plista *B){ B = new Plista; Plista *zadnji = new Plista; B->sljedeci = zadnji; zadnji->sljedeci = NULL; return B; }
You need to login to post a comment.
