Revision: 60482
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 10, 2012 10:09 by mhudince
Initial Code
#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;
};
Initial URL
mhudince3
Initial Description
zadatak za SP
Initial Title
Strukture_podataka_zad_1 (lista_pokazivac.h)
Initial Tags
c++
Initial Language
C++