Return to Snippet

Revision: 60713
at November 12, 2012 08:03 by ihontic


Initial Code
struct tdatum {
       short dan, mj, god;
       };
 
struct tEl{
       int sifra;
       char vrsta[50],naziv[50];
       tdatum dat;
       float cijena;               
       };
 
struct tLista{
       tEl ziv;
       tLista *s;
       };
 
tLista *lista= new tLista;
int sifra=1,br_elem=0,h=0;

void InitL(tLista *lista) {
     lista->s=NULL;
     }
 
void InsertL(tEl x,int p,tLista *lista) {
     tLista *zadnji=lista;
     for(int i=0;i<p;i++) zadnji=zadnji->s;
     tLista *novi = new tLista;
     zadnji->s=novi;
     novi->ziv=x;
     novi->s=NULL;
     }
 
tEl RetrieveL(int p,tLista* lista) {
     tLista *tekuci = lista->s; 
     for(int i=0;i<p;i++) tekuci=tekuci->s;
     return tekuci->ziv; 
     }
 
int EndL(tLista *lista) {
    tLista* tekuci=lista;
    int p=0;
    while(tekuci->s) {
                            tekuci=tekuci->s;
                            p++;
                            }
    return p;
    }
 
void DeleteL(int p, tLista *lista) {
     tLista *brisi = lista->s,*prethodni=lista;
     for(int i=0;i<p;i++) {
             prethodni=brisi;
             brisi=brisi->s;
             }
     prethodni->s=brisi->s;
     delete brisi;
     }
 

int LocateL(char x[],tLista* lista) {
    tLista *tekuci=lista;
    int p=0;
    while(tekuci) {
                  if(tekuci->s==NULL) return EndL(lista);
                  if(!strcmp((tekuci->s)->ziv.naziv,x)||(h==1&&!strcmp((tekuci->s)->ziv.vrsta,x))) return p;
                  tekuci=tekuci->s;
                  p++;
                  }
    return EndL(lista);
    }
 
int FirstL(tLista* lista) {
    if(lista->s==NULL) return EndL(lista);
    return 0;
    }
 
int PreviousL(int p,tLista* lista) {
    if(p==FirstL(lista)) return -1;
    return p-1;
    }  
 
int NextL(int p,tLista* lista) {
    if(p==EndL(lista)) return -1;
    if(p==PreviousL(EndL(lista),lista)) return EndL(lista);
    return p+1;
    }
 
void DeleteAllL(tLista* lista) {
     tLista* prethodni=lista,*tekuci=lista->s;
     while(tekuci) {
                   delete prethodni;
                   prethodni=tekuci;
                   tekuci=tekuci->s;
                   }
 
     delete prethodni;
     lista=NULL;
     }

Initial URL


Initial Description
Zaglavlje za pokazivace

Initial Title
lista_pokazivac.h

Initial Tags
podataka

Initial Language
C++