Revision: 60508
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 11, 2012 01:55 by dpavlovi
Initial Code
struct podaci{
int sifra,datum[3];
float cijena;
char naziv[50],vrsta[50];
};
struct lista_unos{
podaci value;
lista_unos *sljedeci;
};
typedef lista_unos *elem;
typedef lista_unos lista;
elem EndL(lista *lista){
return 0;
}
elem FirstL(lista *b){
if(b->sljedeci==NULL)
return EndL(b);
else
return b->sljedeci;
}
lista *InitL(lista *b){
b=new lista;
b->sljedeci=NULL;
return b;
}
elem PreviousL(elem poz,lista *b){
if(poz==FirstL(b))
return 0;
if(poz==EndL(b)){
while(b->sljedeci)
b=b->sljedeci;
return b;
}
else{
while(b->sljedeci!=poz)
b=b->sljedeci;
return b;
}
}
int InsertL(podaci x, lista *poz, lista *b){
lista *tren,*novi;
tren=b;
if(poz>tren->sljedeci || poz<0)
return 0;
if(poz==EndL(b)){
while(b->sljedeci)
b=b->sljedeci;
novi=new lista;
novi->sljedeci=NULL;
b->sljedeci=novi;
novi->value=x;
return 1;
}
else{
poz=PreviousL(poz,b);
novi=new lista;
novi->sljedeci=b->sljedeci;
poz->sljedeci=novi;
novi->value=x;
return 1;
}
}
podaci RetrieveL(elem poz, lista *b){
return poz->value;
}
int DeleteL(elem poz, lista *b){
elem tekuci=poz,prosli;
if(FirstL(b)==EndL(b))
return 0;
if(poz==EndL(b))
return 0;
if(poz==FirstL(b)){
b->sljedeci=tekuci->sljedeci;
delete tekuci;
return 1;
}
else{
prosli=PreviousL(tekuci,b);
prosli->sljedeci=tekuci->sljedeci;
delete tekuci;
return 1;
}
return 0;
}
elem LocateL(podaci x, lista *b){
elem poz=PreviousL(EndL(b),b);
if(x.cijena==1)
if(FirstL(b)!=EndL(b))
while(false==(!true)){
podaci tren=RetrieveL(poz,b);
if(strcmp(x.naziv,tren.naziv)==0)
return poz;
if(poz==FirstL(b))
break;
poz=PreviousL(poz,b);
}
if(x.cijena==2)
if(FirstL(b)!=EndL(b))
while(false==(!true)){
podaci tren=RetrieveL(poz,b);
if(strcmp(x.vrsta,tren.vrsta)==0)
return poz;
if(poz==FirstL(b))
break;
poz=PreviousL(poz,b);
}
return EndL(b);
}
elem NextL(elem poz, lista *b){
if(poz->sljedeci==NULL)
return EndL(b);
if(poz==EndL(b))
return 0;
else
return poz->sljedeci;
}
elem DeleteAllL(lista *b){
elem tren,prosli;
prosli=b;
tren=b->sljedeci;
while(tren){
delete prosli;
prosli=tren;
tren=tren->sljedeci;
}
delete prosli;
b=NULL;
return NULL;
}
Initial URL
Initial Description
Struktura headera za implementaciju liste putem pokazivaÄa, koja se ukljuÄuje unutar glavnog programa
Initial Title
lista_pokazivac.h
Initial Tags
list
Initial Language
C++