Revision: 60679
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 12, 2012 06:26 by anabel_lee
Initial Code
// 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;
};
Initial URL
Initial Description
zaglavlje-pokazivaci
Initial Title
pokazivac_lista
Initial Tags
Initial Language
C++