/ Published in: C++
Zaglavlje s implementacijom funkcija pomoću pokazivaÄa
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
struct dat { int d,m,g; }; struct zapis { int sifra; float cijena; char vrsta[20],naziv[20]; dat datum; }; struct lista { zapis podaci; lista *nx; }; lista *L = new lista; int sifra=100,n=0; void InitL(lista *L) { L->nx=NULL; } int EndL(lista *L) { lista* temp=L; int p=0; while(temp->nx) { temp=temp->nx; p++; } return p; } int FirstL(lista* L) { if(L->nx==NULL) return EndL(L); return 0; } int PreviousL(int p,lista* L) { if(p==FirstL(L)) return -1; return p-1; } int NextL(int p,lista* L) { if(p==EndL(L)) return -1; if(p==PreviousL(EndL(L),L)) return EndL(L); return p+1; } void InsertL(zapis x,int p,lista *L) { lista *k=L; for(int i=0;i<p;i++)k=k->nx; lista *novi = new lista; novi->nx=(k->nx)->nx; k->nx=novi; novi->podaci=x; } zapis RetrieveL(int p,lista* L) { lista *temp = L->nx; for(int i=0;i<p;i++)temp=temp->nx; return temp->podaci; } int LocateL(char x[],lista* L) { lista *temp=L; int p=0; while(temp) { if(temp->next==NULL) return EndL(L); if(!strcmp((temp->nx)->podaci.naziv,x)||(!strcmp((temp->nx)->podaci.vrsta,x)))return p; temp=temp->nx; p++; } return EndL(L); } void DeleteL(int p, lista *L) { lista *temp = L->nx,*prev=L; for(int i=0;i<p;i++) { prev=temp; temp=temp->nx; } prev->nx=temp->nx; delete temp; } void DeleteAll(lista* L) { lista* prev=L,*temp=L->nx; while(temp) { delete prev; prev=temp; temp=temp->nx; } delete prev; L=NULL; }