Revision: 60761
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 12, 2012 08:49 by JosipPrimorac
Initial Code
#include <cstring>
struct tziv {
int sifra , d, m, g;
float cijena;
char naziv [20], vrsta [20];
};
struct list{
tziv ziv;
list *sljedeci;
};
typedef list *elem;
elem EndL(list *l) {
list *tekuci = l;
while (tekuci->sljedeci)
tekuci = tekuci->sljedeci;
return tekuci;
};
elem FirstL (list *l) {
if (l->sljedeci)
return l;
else
return EndL(l);
};
elem NextL (elem pozicija, list *l) {
if (pozicija->sljedeci)
return pozicija->sljedeci;
else
return EndL(l);
};
elem PreviousL (elem pozicija, list *l){
if (pozicija == l)
return 0;
list *tekuci = l;
while (tekuci->sljedeci) {
if (tekuci->sljedeci == pozicija)
return tekuci;
tekuci = tekuci->sljedeci;
}
};
elem LocateL (tziv 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);
};
elem InsertL (tziv z, elem pozicija, list *l) {
if (pozicija) {
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);
if (pozicija->sljedeci){
novi->sljedeci = pozicija->sljedeci;
}
else {
novi->sljedeci = NULL;
pozicija->sljedeci = novi;
}
}
else
return 0;
};
elem DeleteL (elem pozicija, list *l) {
if (pozicija && pozicija->sljedeci) {
list *pom = pozicija->sljedeci;
pozicija->sljedeci = pozicija->sljedeci->sljedeci;
delete pom;
}
else
return 0;
};
tziv RetrieveL (elem pozicija, list *l) {
tziv ziv;
if (pozicija && pozicija->sljedeci) {
ziv.sifra = pozicija->sljedeci->ziv.sifra;
ziv.cijena = pozicija->sljedeci->ziv.cijena;
ziv.d = pozicija->sljedeci->ziv.d;
ziv.m = pozicija->sljedeci->ziv.m;
ziv.g = pozicija->sljedeci->ziv.g;
strcpy (ziv.vrsta, pozicija->sljedeci->ziv.vrsta);
strcpy (ziv.naziv, pozicija->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
Initial Description
lista s pokazivacima
Initial Title
lista_pokazivac.h
Initial Tags
Initial Language
C++