/ Published in: C++
zaglavlje-pokazivaci
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
// IMPLEMENTACIJA LISTE POMOCU POKAZIVACA // #include <cstring> struct zivotinje { int sifra, d,m,g; char vrsta[20], naziv[40]; float cijena; }; struct LIST { zivotinje zi; 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) 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->zi.naziv == z.naziv) return tekuci; tekuci = tekuci->sljedeci; } return ENDL(L); }; element INSERTL (zivotinje z, element position, LIST *L) { if (position) { LIST *novi = new LIST; novi->zi.sifra = z.sifra; novi->zi.d = z.d; novi->zi.m = z.m; novi->zi.cijena = z.cijena; novi->zi.g = z.g; strcpy (novi->zi.vrsta, z.vrsta); strcpy (novi->zi.naziv, z.naziv); if (position->sljedeci) novi->sljedeci = position->sljedeci; 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 zi; if (position && position->sljedeci) { zi.sifra = position->sljedeci->zi.sifra; zi.cijena = position->sljedeci->zi.cijena; zi.d = position->sljedeci->zi.d; zi.m = position->sljedeci->zi.m; zi.g = position->sljedeci->zi.g; strcpy (zi.vrsta, position->sljedeci->zi.vrsta); strcpy (zi.naziv, position->sljedeci->zi.naziv); return zi; } }; 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; };