/ Published in: C++
header sa funkcijama za pokazivace
Expand |
Embed | Plain Text
#include <iostream> using namespace std; bool PV=true; struct tdatum { int dan,Bmjesec,godina; char Rmjesec[10]; }; struct telement { int sifra; float cijena; char vrsta[100], naziv[100]; tdatum datum; }; struct lis{ telement element; lis *next; }; typedef lis *el; typedef lis lista; el FirstL (lista *glava){ return glava->next; } el EndL (lista *glava){ el zadnji=glava; while (zadnji->next) zadnji=zadnji->next; return zadnji->next; } el NextL (el pozicija, lista *glava){ if (pozicija->next!=NULL) return pozicija->next; cout<<"Error!\n"; } el PreviousL (el pozicija, lista *glava){ el tekuci=glava; if (pozicija!=glava){ while (tekuci->next!=pozicija) tekuci=tekuci->next; return tekuci;} cout<<"Error!\n"; } el LocateL (telement trazeni, lista *glava){ el tekuci=glava; if (PV){ while (tekuci){ if (!(strcmp(tekuci->element.naziv,trazeni.naziv))) return tekuci; tekuci=tekuci->next;}} else{ while (tekuci){ if (!(strcmp(tekuci->element.vrsta,trazeni.vrsta))) return tekuci; tekuci=tekuci->next;}} return EndL(glava); } int InsertL (telement novi, el pozicija, lista *glava){ el tekuci=new lista; el prethodni; tekuci->element=novi; tekuci->next=pozicija; prethodni=PreviousL(pozicija, glava); prethodni->next=tekuci; if(tekuci->element.sifra==novi.sifra) return 1; return 0; } int DeleteL (el pozicija, lista *glava){ el prethodni; if (pozicija==EndL(glava)) return 0; prethodni=PreviousL(pozicija,glava); prethodni->next=pozicija->next; delete pozicija; return 1; } telement RetreiveL (el pozicija, lista *glava){ return pozicija->element; } void DeleteAllL (lista *glava){ el tekuci=glava->next, sljedeci; while (tekuci){ sljedeci=tekuci->next; delete tekuci; tekuci=sljedeci;} } lista *InitL (lista *glava){ glava=new lista; glava->next=NULL; return glava; }
You need to login to post a comment.
