/ Published in: C++
zadatak za SP
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include <cstring> struct zivotinje { int sifra, cijena, d, m, g; char naziv [20], vrsta [30]; }; struct LIST { zivotinje ziv; LIST *sljedeci; }; typedef LIST *element; element ENDL(LIST* L) { LIST *tekuci = L; while (tekuci->sljedeci) tekuci = tekuci->sljedeci; return tekuci; }; element FIRSTL (LIST *L) { if (L->sljedeci) return L; else return ENDL(L); }; element NEXTL (element position, LIST *L) { if (position->sljedeci) // if (position && position->sljedeci) return position->sljedeci; else return ENDL(L); }; element PREVIOUSL (element position, LIST *L){ if (position == L) return 0; LIST *tekuci = L; while (tekuci->sljedeci) { if (tekuci->sljedeci == position) return tekuci; tekuci = tekuci->sljedeci; } }; element LOCATEL (zivotinje z, LIST *L) { LIST *tekuci = L; while (tekuci) { if (tekuci->sljedeci && tekuci->sljedeci->ziv.naziv == z.naziv) return tekuci; tekuci = tekuci->sljedeci; } return ENDL(L); }; element INSERTL (zivotinje z, element position, LIST *L) { if (position) { //LIST *zadnji; //zadnji = L; LIST *novi = new LIST; novi->ziv.sifra = z.sifra; novi->ziv.d = z.d; novi->ziv.m = z.m; novi->ziv.cijena = z.cijena; novi->ziv.g = z.g; strcpy (novi->ziv.vrsta, z.vrsta); strcpy (novi->ziv.naziv, z.naziv); /** int br=0; while(br < int(position)) { zadnji=zadnji->sljedeci; br++; } **/ if (position->sljedeci){ novi->sljedeci = position->sljedeci; //zadnji->sljedeci = novi; } else { novi->sljedeci = NULL; position->sljedeci = novi; } } else return 0; }; element DELETEL (element position, LIST *L) { if (position && position->sljedeci) { LIST *pom = position->sljedeci; position->sljedeci = position->sljedeci->sljedeci; delete pom; } else return 0; }; zivotinje RETRIEVEL (element position, LIST *L) { zivotinje ziv; if (position && position->sljedeci) { ziv.sifra = position->sljedeci->ziv.sifra; ziv.cijena = position->sljedeci->ziv.cijena; ziv.d = position->sljedeci->ziv.d; ziv.m = position->sljedeci->ziv.m; ziv.g = position->sljedeci->ziv.g; strcpy (ziv.vrsta, position->sljedeci->ziv.vrsta); strcpy (ziv.naziv, position->sljedeci->ziv.naziv); return ziv; } }; void DELETEALLL (LIST *L) { LIST *prvi = L->sljedeci, *tekuci; while (prvi) { tekuci = prvi; prvi = prvi->sljedeci; delete tekuci; } }; LIST* INITL (LIST *L) { L = new LIST; L->sljedeci = NULL; return L; };
URL: mhudince3