Return to Snippet

Revision: 34530
at October 24, 2010 05:48 by barrogar


Initial Code
struct tpacijent {
       int mb;
       char ime[30];
       int godine;
} pacijent;

struct list {
       int mb;
       char ime[30];
       int godine;
       list* next;     
};

typedef list* element;

element EndL (list* L) {
        list* tekuci = L; 
        while (tekuci->next)
              tekuci = tekuci->next;
        return tekuci;  
};

element FirstL (list* L) {
        if (L->next) 
           return L;
        else
           return EndL(L); 
};

element NextL (element p, list* L) {
        if (p->next)
           return p->next; 
        else
           return EndL(L);
};

element PreviousL (element p, list* L) {
        if (p == FirstL(L))
           return 0;
        list* tekuci = L; 
        while(tekuci->next) {
           if (tekuci->next == p)
              return tekuci; 
           tekuci = tekuci->next; 
        }
};

element LocateL (tpacijent x, list* L) {
        list* tekuci = L;
        while (tekuci){
           if(tekuci->next && tekuci->next->mb == x.mb)
              return tekuci; 
           tekuci = tekuci->next;
        }
        return EndL(L);
};

int InsertL (tpacijent x, element p, list* L) {
      if (p) {
         list* novi = new list; 
         novi->mb = x.mb;
         strcpy(novi->ime, x.ime);
         novi->godine = x.godine;   
         novi->next = NULL; 
         if (p->next){
            novi->next = p->next; 
         }
         p->next = novi;
         return 1;
      }
      else
         return 0;
};

int DeleteL(element p, list* L) {
    if (p && p->next) { 
          list* pom = p->next;
          p->next = p->next->next;
          delete pom; 
          return 1;
    }
    else
        return 0; 
};

tpacijent RetrieveL(element p, list* L) {
      if (p && p->next) { 
         pacijent.mb = p->next->mb;
         strcpy (pacijent.ime, p->next->ime);
         pacijent.godine = p->next->godine; 
         return pacijent; 
      }       
};

void DeleteAllL(list* L) {
      list *pok = L->next; 
      list *tekuci; 
      while (pok) {
         tekuci = pok; 
         pok = pok->next; 
         delete tekuci;
      }    
};

list* InitL(list* L) {
      L = new list; 
      L->next = NULL; 
      return L;
};

Initial URL


Initial Description


Initial Title
Sp zadatak 1 pokazivaci, Barbara Rogar

Initial Tags


Initial Language
C++