Return to Snippet

Revision: 60649
at November 12, 2012 04:45 by Mugooooo


Initial Code
struct tdate {
    int d,y;
    char m[25];
    };

struct elem {
    int sifra;
    char vrsta[50],naziv[50];
    tdate date;
    float cijena;
    };
     
struct lis {
    elem zivotinja;
    lis *sljedeci;
    };
     
lis *list=new lis;
    int sifra=1,br_elem=0,v=0;
     
void InitL(lis *lista) {
    lista->sljedeci=NULL;
    }
     
void InsertL(elem x,int p,lis *lista) {
    lis *zadnji=lista;
    for(int i=0;i<p;i++) zadnji=zadnji->sljedeci;
     
lis *novi = new lis;
    zadnji->sljedeci=novi;
    novi->zivotinja=x;
    novi->sljedeci=NULL;
    }
     
elem RetrieveL(int p,lis* lista) {
    lis *tekuci = lista->sljedeci;
    for(int i=0;i<p;i++) tekuci=tekuci->sljedeci;
    return tekuci->zivotinja;
    }
     
    int EndL(lis *lista) {
    lis* tekuci=lista;
    int p=0;
    while(tekuci->sljedeci) {
    tekuci=tekuci->sljedeci;
    p++;
    }
    return p;
    }
     
void DeleteL(int p, lis *lista) {
    lis *brisi = lista->sljedeci,*prethodni=lista;
    for(int i=0;i<p;i++) {
    prethodni=brisi;
    brisi=brisi->sljedeci;
    }
    prethodni->sljedeci=brisi->sljedeci;
    delete brisi;
    }
     
int LocateL(char x[],lis* lista) {
    lis *tekuci=lista;
    int p=0;
    while(tekuci) {
    if(tekuci->sljedeci==NULL) return EndL(lista);
    if(!strcmp((tekuci->sljedeci)->zivotinja.naziv,x)||(v==1&&!strcmp((tekuci->sljedeci)->zivotinja.vrsta,x))) return p;
    tekuci=tekuci->sljedeci;
    p++;
    }
    return EndL(lista);
    }
     
int FirstL(lis* lista) {
    if(lista->sljedeci==NULL) return EndL(lista);
    return 0;
    }
     
int PreviousL(int p,lis* lista) {
    if(p==FirstL(lista)) return -1;
    return p-1;
    }
     
int NextL(int p,lis* lista) {
    if(p==EndL(lista)) return -1;
    if(p==PreviousL(EndL(lista),lista)) return EndL(lista);
    return p+1;
    }
     
void DeleteAll(lis* lista) {
    lis* prethodni=lista,*tekuci=lista->sljedeci;
    while(tekuci) {
    delete prethodni;
    prethodni=tekuci;
    tekuci=tekuci->sljedeci;
    }
     
delete prethodni;
    lista=NULL;
    }
     

void Return(elem x,int p, lis* lista) {
    lis* tekuci=lista->sljedeci;
    for(int i=0;i<p;i++) tekuci=tekuci->sljedeci;
    tekuci->zivotinja=x;
    }

Initial URL
lis_pok_Životinjska farma

Initial Description
Lista pokazivači u službi glavnog programa "Životinjska farma"

Initial Title
Strukture podataka-Zadatak_1-Lista_pokazivač

Initial Tags
podataka

Initial Language
C++