Return to Snippet

Revision: 60586
at November 11, 2012 23:53 by Dominik-DinoPavlekovic


Initial Code
struct tdate {
       int dan,godina,mjesec;
       };
       
struct elem {
       int sifra;
       char vrsta[20],naziv[20];
       float cijena;
       tdate date;
       };
       
struct list {
       elem anim;
       list *sljedeci;            
       };
       
list *lista=new list;

int sifra=1,br_el=0,v=0,n=0;
int EndL(list *lista) {
    list* tekuci=lista;
    int y=0;
    while(tekuci->sljedeci) {
                            tekuci=tekuci->sljedeci;
                            y++;
                            }
    return y;
} 
int FirstL(list* lista) {
    if(lista->sljedeci==NULL) return EndL(lista);
    return 0;
}

int PreviousL(int y,list* lista) {
    if(y==FirstL(lista)) return -1;
    return y-1;
}

int NextL(int y,list* lista) {
    if(y==EndL(lista)) return -1;
    if(y==PreviousL(EndL(lista),lista)) return EndL(lista);
    return y+1;
}


int LocateL(char x[],list* lista) {
    list *tekuci=lista; 
    int y=0;
    while(tekuci) {
                  if(tekuci->sljedeci==NULL) return EndL(lista);
                  if(n==1&&!strcmp((tekuci->sljedeci)->anim.naziv,x)||v==1&&!strcmp((tekuci->sljedeci)->anim.vrsta,x)) return y;
                  tekuci=tekuci->sljedeci;
                  y++;
                  }
    return EndL(lista);
}
    
void InsertL(elem x,int y,list *lista) {
     list *zadnji=lista;
     for(int i=0;i<y;i++) zadnji=zadnji->sljedeci;
     
     list *novi = new list;
     zadnji->sljedeci=novi;
     novi->anim=x;
     novi->sljedeci=NULL;
}

void DeleteL(int y, list* lista) {
     list *brisi = lista->sljedeci,*prethodni=lista;
     for(int i=0;i<y;i++) {
             prethodni=brisi;
             brisi=brisi->sljedeci;
             }
     prethodni->sljedeci=brisi->sljedeci;
     delete brisi;
}

elem RetrieveL(int y,list* lista) {
     list *tekuci = lista->sljedeci; 
     for(int i=0;i<y;i++) tekuci=tekuci->sljedeci;
     return tekuci->anim; 
}

void DeleteAll(list* lista) {
     list* prethodni=lista,*tekuci=lista->sljedeci;
     while(tekuci) {
                   delete prethodni;
                   prethodni=tekuci;
                   tekuci=tekuci->sljedeci;
                   }
                   
     delete prethodni;
     lista=NULL;
}

void InitL(list* lista) {
     lista->sljedeci=NULL;
}

void Vrati(elem x,int y, list* lista) {
     list* tekuci=lista->sljedeci;
     for(int i=0;i<y;i++) tekuci=tekuci->sljedeci;
     tekuci->anim=x;
     }

Initial URL


Initial Description
datoteka zaglavlja u kojoj se nalazi implementacija liste pomoću pokazivača

Initial Title
lista_pokazivac.h

Initial Tags


Initial Language
C++