Return to Snippet

Revision: 60765
at November 12, 2012 08:54 by ihranj


Initial Code
#include <iostream>
#include <string.h>
using namespace std;

struct tzivotinje{
  int sifra;
  char vrsta[51];
  char naziv[51];
  int cijena;
  float datum;
  int godina;
};

struct tlista{
  tzivotinje zivotinje;
  tlista *sljedeci;
};

typedef tlista *element;

element FirstL(tlista *l){
    return l->sljedeci;
}

element EndL(tlista *l){
    tlista *tekuci = l;
    while(tekuci->sljedeci)
       tekuci=tekuci->sljedeci;
    return tekuci;
}

element NextL(element p, tlista *l){
    if(p->sljedeci==NULL) return EndL(l);
    return p->sljedeci;
}

element PreviousL(element p, tlista *l){
    tlista *tekuci = l->sljedeci;
    while(p != tekuci->sljedeci && tekuci->sljedeci!=NULL)
       tekuci=tekuci->sljedeci;
    return tekuci;
}

element LocateL(tzivotinje z, tlista *l){
     element tekuci;
     tekuci = l->sljedeci;
     while(tekuci){
        if(z.naziv!=0){
     
           if(strcmp(z.naziv,tekuci->zivotinje.naziv)==0)
              return tekuci;
        }
        if(z.vrsta!=0) {
         if(strcmp(z.vrsta,tekuci->zivotinje.vrsta)==0)
            return tekuci;
        }

        tekuci = tekuci->sljedeci;
     }
     return EndL(l);
}

int InsertL(tzivotinje z, tlista *p, tlista *l){
    tlista *tekuci = p;
    tlista *novi = new tlista;

    if(p==EndL(l)){
       novi->sljedeci=NULL;
       tekuci->sljedeci = novi;
       tekuci->zivotinje = z;
    }
    else if(p==FirstL(l)){
         novi->sljedeci = tekuci;
         l->sljedeci = novi;
         novi->zivotinje = z;
    }
    else{
         tlista *prethodni = PreviousL(p,l);
         novi->sljedeci=tekuci;
         prethodni->sljedeci = novi;
         novi->zivotinje = z;
    }
    if(tekuci->zivotinje.sifra==z.sifra)
       return 1;
    else
       return 0;
}

int DeleteL(element p, tlista *l){
    element prethodni, tekuci;
    tekuci = p;
    if(p==FirstL(l)){
       l->sljedeci = tekuci->sljedeci;
       delete tekuci;
       return 1;
    }
    else{
       prethodni = PreviousL(tekuci,l);
       prethodni->sljedeci = tekuci->sljedeci;
       delete tekuci;
       return 1;
    }
    return 0;
}

tzivotinje RetrieveL(element p, tlista *l){
    return p->zivotinje;
}

element DeleteAllL(tlista *l){
     l->sljedeci = EndL(l);
}

tlista* InitL(tlista *l){
        l = new tlista;
        tlista *zadnji = new tlista;
        l->sljedeci = zadnji;
        zadnji->sljedeci = NULL;
        return l;
}

Initial URL


Initial Description
funkcija zaglavlja koja će nam biti potrebna u main programu

Initial Title
hranj_lista_pokazivaci.h

Initial Tags


Initial Language
C++