/ Published in: C++
PoÅ¡to se radi o strogo zadanim funkcijama koje su iste svim studentima, nema nekih prevelikih razlika u kodu osim u drugaÄijim nazivima varijabli te rasporedu pisanja samih funkcija.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
using namespace std; int sifra=1; struct tzivotinja { int sifra; char vrsta[30],naziv[30]; float cijena; tm datum; tzivotinja *sljedeci; }; tzivotinja *lista = new tzivotinja; void initL(tzivotinja *lista){ lista->sljedeci = NULL; } int endL(tzivotinja *lista){ tzivotinja *tekuci = lista; int b=1; while(tekuci->sljedeci){ tekuci=tekuci->sljedeci; b++; } return b; } int firstL(tzivotinja *lista){ if(lista->sljedeci == NULL) return endL(lista); else return 0; } int previousL(int p,tzivotinja *lista){ if(p == firstL(lista)) return -1; else return p-1; } tzivotinja retrieveL(int p, tzivotinja *lista){ tzivotinja *tekuci = lista->sljedeci; for(int i=0;i<p;i++) tekuci = tekuci->sljedeci; return *tekuci; } int locateL(int v, tzivotinja *lista){ tzivotinja *tekuci = lista->sljedeci; int br = 0; while(tekuci){br++; tekuci = tekuci->sljedeci; } return br; } tzivotinja * nextL(int p,tzivotinja *lista){ if(p == endL(lista)) return NULL; else{ tzivotinja tekuci = retrieveL(p,lista); return tekuci.sljedeci;} } void Vrati(tzivotinja element,int p, tzivotinja* lista) { tzivotinja *tekuci=lista->sljedeci; for(int i=0;i<p;i++) tekuci=tekuci->sljedeci; tekuci->sifra = element.sifra; tekuci->cijena = element.cijena; strcpy(tekuci->naziv,element.naziv); strcpy(tekuci->vrsta,element.vrsta); tekuci->datum = element.datum; } void reverse(tzivotinja *lista) { if(lista->sljedeci == NULL) return; tzivotinja *prev = NULL, *current = NULL, *next = NULL; current = lista->sljedeci; while(current != NULL){ next = current->sljedeci; current->sljedeci = prev; prev = current; current = next; } lista->sljedeci = prev; } int insertL(tzivotinja *novi, int p, tzivotinja *lista){ tzivotinja *tekuci = lista; for(int i=1;i<p;i++) tekuci = tekuci->sljedeci; novi->sljedeci = tekuci->sljedeci; tekuci->sljedeci = novi; sifra++; if((tekuci->sljedeci)->sifra == novi->sifra) return 1; else return 0; } void deleteL(int p, tzivotinja *lista){ tzivotinja *tekuci = lista->sljedeci; tzivotinja *prethodni = lista; for(int i=0;i<p;i++){ tekuci = tekuci->sljedeci; prethodni = prethodni->sljedeci; } prethodni->sljedeci = tekuci->sljedeci; delete tekuci; }