Revision: 60578
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 11, 2012 22:45 by supavkovii
Initial Code
struct zivotinja{
int sifra;
char vrsta[20],naziv[20];
float cijena;
char datum[15];
zivotinja *slijedeci;
};
typedef zivotinja pomocna;
typedef zivotinja *tip;
zivotinja *InitL(zivotinja *&lista){
lista=new zivotinja;
lista->slijedeci=NULL;
return lista;
}
zivotinja* EndL(zivotinja *lista){
zivotinja *pom=lista;
while(pom->slijedeci)
pom=pom->slijedeci;
return pom->slijedeci;
}
zivotinja* FirstL(zivotinja *lista){
if(lista->slijedeci==NULL) return EndL(lista);
return lista->slijedeci;
}
zivotinja* NextL(zivotinja* p, zivotinja *lista){
if(p->slijedeci==NULL) return 0;// zadnji elementa (=NULL) nema sljedeci pokazivac -> error
return p->slijedeci;
}
zivotinja* PreviousL(zivotinja* p, zivotinja *lista){
if(lista->slijedeci==NULL) return 0;// 1. element nema prethodnog -> error
zivotinja *pom=lista;
while(pom->slijedeci && p!=pom->slijedeci)
pom=pom->slijedeci;
return pom;
}
zivotinja* LocateL(int sifra, zivotinja *lista){// trazi sifru
zivotinja *pom=lista->slijedeci;
while(pom){
if(pom->sifra==sifra) return pom;
pom=pom->slijedeci;
}
return EndL(lista);
}
bool InsertL(zivotinja x, zivotinja* p, zivotinja *lista){// na p dodajemo x
zivotinja *pom=new zivotinja;
pom->slijedeci=NULL;
pom->sifra=x.sifra;
pom->cijena=x.cijena;
strcpy(pom->datum,x.datum);
strcpy(pom->naziv,x.naziv);
strcpy(pom->vrsta,x.vrsta);
if(lista->slijedeci==NULL) p=lista; // dodavanje 1. elementa
if(p==NULL && PreviousL(p,lista)) p=PreviousL(p,lista); // na EndL
pom->slijedeci=p->slijedeci;
p->slijedeci=pom;
return true;
}
zivotinja RetrieveL(zivotinja* p, zivotinja *lista){
zivotinja pom;
if(p!=NULL){
pom.sifra=p->sifra;
pom.cijena=p->cijena;
strcpy(pom.datum,p->datum);
strcpy(pom.naziv,p->naziv);
strcpy(pom.vrsta,p->vrsta);
}
return pom;
}
bool DeleteL(zivotinja* p, zivotinja *lista){
if(p && p->slijedeci){
zivotinja* pom=p->slijedeci; // brisemo p->slijedeci
p->slijedeci=p->slijedeci->slijedeci;
delete pom;
return true;
}
else return false;
}
void DeleteAllL(zivotinja *lista){
zivotinja* pom;
while(lista->slijedeci){
pom=lista->slijedeci;
lista->slijedeci=lista->slijedeci->slijedeci;
delete pom;
}
}
Initial URL
Initial Description
datoteka zaglavlja s funkcijama za implementaciju liste pomoću pokazivaÄa
Initial Title
lista_pokazivaci.h
Initial Tags
Initial Language
C++