Return to Snippet

Revision: 60634
at November 12, 2012 03:55 by Tomislav_Hop


Initial Code
struct tdatum {
       short dan, mjesec, godina;
       };
 
struct tEl{
       int sifra;
       char vrsta[50],naziv[50];
       tdatum dat;
       float cijena;               
       };
 
struct tLista{
       tEl ziv;
       tLista *slj;
       };
 
tLista *lista= new tLista;
int sifra=1,br_elem=0,v=0;

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

int LocateL(char x[],tLista* lista) {
    tLista *tekuci=lista;
    int p=0;
    while(tekuci) {
                  if(tekuci->slj==NULL) return EndL(lista);
                  if(!strcmp((tekuci->slj)->ziv.naziv,x)||(v==1&&!strcmp((tekuci->slj)->ziv.vrsta,x))) return p;
                  tekuci=tekuci->slj;
                  p++;
                  }
    return EndL(lista);
    }
 
int FirstL(tLista* lista) {
    if(lista->slj==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->slj;
     while(tekuci) {
                   delete prethodni;
                   prethodni=tekuci;
                   tekuci=tekuci->slj;
                   }
 
     delete prethodni;
     lista=NULL;
     }

Initial URL


Initial Description
Implementacija liste pomocu pokazivaca

Initial Title
lista_pokazivaci.h

Initial Tags


Initial Language
C++