Return to Snippet

Revision: 60536
at November 11, 2012 04:31 by marcelic


Initial Code
using namespace std;

struct Zivotinja {
       int sifra;
       char vrsta[30];
       char naziv[30];
       float cijena;
       struct {
              int dan, mjesec, godina;
              }datum_dostave;
       };

struct List {
       Zivotinja zivotinja;
       List *sljedeci;
       };

typedef List *element;
typedef List lista;

element FirstL(lista *L) {
        return L->sljedeci;
        }
element EndL(lista *L) {
        element tekuci=L->sljedeci;
        while(tekuci->sljedeci) tekuci=tekuci->sljedeci;
        return tekuci;
        }
element NextL(element p, lista *L) {
        return p->sljedeci;
        }
element PreviousL(element p, lista *L) {
        element tekuci=L;
        while(tekuci->sljedeci!=p) tekuci=tekuci->sljedeci;
        return tekuci;
        }
element LocateL (Zivotinja x, lista * L){
        element tekuci = L;
        if (x.naziv == 0) {
                while (tekuci) {
                      if (tekuci == EndL(L)) return EndL(L);
                      if (tekuci->zivotinja.sifra == x.sifra) return tekuci;
                      tekuci = tekuci->sljedeci;
                      };
                return tekuci;
        } else {
               while (tekuci) {
                      if (tekuci == EndL(L)) return EndL(L);
                      if (tekuci->zivotinja.naziv == x.naziv) return tekuci;
                      tekuci = tekuci->sljedeci;
                      };
                return tekuci;
        }
}
int InsertL(Zivotinja x, element p, lista *L) {
    element tekuci=new lista;
    element prethodni;
    tekuci->zivotinja=x;
    tekuci->sljedeci=p;
    prethodni=PreviousL(p, L);
    prethodni->sljedeci=tekuci;
    if(tekuci->zivotinja.sifra==x.sifra)
                                        return 1;
    else return 0;
    }
int DeleteL(element p, lista *L) {
    element prethodni;
    if(p==EndL(L))
    return 0;
    prethodni=PreviousL(p, L);
    prethodni->sljedeci=p->sljedeci;
    delete p;
    return 1;
    }
Zivotinja RetreiveL(element p, lista *L) {
          return p->zivotinja;
          }
void DeleteAllL(lista *L) {
     element tekuci=L->sljedeci, sljedeci;
     while(tekuci) {
                   sljedeci=tekuci->sljedeci;
                   delete tekuci;
                   tekuci=sljedeci;
                   }
     }
lista *InitL(lista *L) {
      L=new lista;
      lista *zadnji=new lista;
      L->sljedeci=zadnji;
      zadnji->sljedeci=NULL;
      return L;
      }

Initial URL


Initial Description
Implementacija liste pomocu pokazivaca

Initial Title
Evidencija zivotinja - lista_pokazivac.h

Initial Tags


Initial Language
C++