Return to Snippet

Revision: 34548
at October 25, 2010 01:58 by dotonkovi


Initial Code
#include <iostream>
using namespace std;

struct pacijent {
       char prez_ime[30];
       int mat_br;
       int dob;
       };

struct pacijenti {
       pacijent ID;
       pacijenti *sljedeci;
       };

void InitL(pacijenti *lista){
     lista->sljedeci=NULL;              
}

pacijenti *FirstL(pacijenti *lista){
     return lista->sljedeci;     
} 

pacijenti *EndL(pacijenti *lista){
    return NULL;
}

pacijenti *NextL(int p, pacijenti *lista){
     pacijenti *zadnji;
     zadnji=lista;
     int brojac=0;
     while(zadnji->sljedeci){
          brojac++;
          zadnji=zadnji->sljedeci;
          if (brojac==p){
               if (zadnji->sljedeci==NULL) return EndL(lista);
               else return zadnji->sljedeci;            
               }                        
     }
}

pacijenti *PreviousL(int p, pacijenti *lista){
     pacijenti *zadnji, *prethodni;
     prethodni=lista;
     zadnji=prethodni->sljedeci;
     int brojac=2;
     if(p==0 || p==1)cout<<"Prethodni ne postoji"<<endl;
     else{
          while(zadnji->sljedeci){
                prethodni=zadnji;
                zadnji=zadnji->sljedeci;
                prethodni->sljedeci=zadnji;
                brojac++;
                if(brojac==p) return prethodni->sljedeci;                       
          }                       
     }                 
}

pacijenti *LocateL(int pom, pacijenti *lista){
     pacijenti *zadnji;
     zadnji=lista;
     int brojac=1;
     while(zadnji->sljedeci){
         if(pom==brojac) return zadnji->sljedeci;
         zadnji=zadnji->sljedeci;
         brojac++;
     }
     return EndL(lista);
}
void InsertL(pacijent pom, int p, pacijenti *lista){
     int brojac=0;
     pacijenti *zadnji,*prethodni;
     prethodni=lista;
     zadnji=prethodni->sljedeci;
     while(prethodni->sljedeci){
                             if(p==brojac){
                                           pacijenti *novi=new pacijenti;
                                           novi->ID.mat_br=pom.mat_br;
                                           novi->ID.dob=pom.dob;
                                           
                                           novi->sljedeci=zadnji;
                                           prethodni->sljedeci=novi;
                             } 
                             prethodni=prethodni->sljedeci;
                             brojac++;
     }   
}

int novi_pacijent(pacijent pom, pacijenti *lista){
     bool dodan=false;
     pacijenti *zadnji, *novi;
     zadnji=lista;
     while(zadnji->sljedeci)
         zadnji=zadnji->sljedeci;
     novi=new pacijenti;
     novi->ID=pom;
     zadnji->sljedeci=novi;
     novi->sljedeci=NULL;
     dodan=true;
     if(dodan) return 1;
     else return 0;
}     

int brisanje(pacijenti *lista, int mat_br){
     pacijenti *brisi=lista->sljedeci;
     pacijenti *prethodni=lista;
     while(brisi){
                  if(brisi->ID.mat_br==mat_br){
                                                prethodni->sljedeci=brisi->sljedeci;
                                                delete brisi;
                                                cout<<"Pacijent obrisan!"<<endl;
                                                return 1;                             
                  }             
                  prethodni=brisi;
                  brisi=brisi->sljedeci;
     }     
     cout<<"Nije naden pacijent s tim maticnim brojem. :("<<endl;
     return 0;
}

void DeleteL(int p, pacijenti *lista){
     int brojac=1;
     pacijenti *zadnji,*prethodni, *brisi;
     prethodni=lista;
     zadnji=prethodni->sljedeci;
     while(prethodni->sljedeci){
                             if(p==brojac){
                                  brisi=prethodni->sljedeci;
                                  prethodni->sljedeci=brisi->sljedeci;
                                  delete brisi;       
                                  }                      
                             }         
}

pacijenti *RetrieveL(int p, pacijenti *lista){
         int brojac=0;
         pacijenti *trenutni;
         trenutni=lista;
         while(trenutni->sljedeci){
                                   if (p==brojac) return trenutni;
                                   else{
                                        brojac++;
                                        trenutni=trenutni->sljedeci;
                                        }
                                   }
         }

void DeleteAllL(pacijenti *lista){
     pacijenti *zadnji, *brisi;
     while(lista->sljedeci){
                            brisi=lista->sljedeci;
                            zadnji=brisi->sljedeci;
                            lista->sljedeci=zadnji;
                            delete brisi;                       
     }    
}

void sortiranje(pacijenti *lista){
  if(lista->sljedeci) {
  pacijenti *prethodni,*tekuci,*sljedeci;
  int indikator,brojac=0;
  do{
    indikator = 0;
    tekuci=lista->sljedeci;
    prethodni=lista;
    while (tekuci->sljedeci){
      sljedeci=tekuci->sljedeci;
      if (tekuci->ID.mat_br > sljedeci->ID.mat_br){
         prethodni->sljedeci=sljedeci;
         tekuci->sljedeci=sljedeci->sljedeci;
         sljedeci->sljedeci=tekuci;
         indikator=1;
      }
      prethodni=prethodni->sljedeci;
      tekuci=prethodni->sljedeci;
    }
  } while (indikator==1);
}
  else cout<<"Lista je prazna!!! :("<<endl;
}

void popis(pacijenti *lista){
     pacijenti *zadnji;
     zadnji=lista->sljedeci;
     while(zadnji){
                             cout<<"Ime i prezime pacijenta: "<<zadnji->ID.prez_ime<<endl;
                             cout<<"Maticni broj: "<<zadnji->ID.mat_br<<endl;
                             cout<<"Dob: "<<zadnji->ID.dob<<endl;
                             cout<<endl;
                             zadnji=zadnji->sljedeci;                                               
     }    
}

void mladi(pacijenti *lista){
     int brojac=0;
     pacijenti *zadnji;
     zadnji=lista;
     while(zadnji){
         if (zadnji->ID.dob<18){
            cout << "Ime i prezime pacijenta: "<<zadnji->ID.prez_ime<<endl;
            cout << "Maticni broj: "<<zadnji->ID.mat_br<<endl;
            cout << "Dob: "<<zadnji->ID.dob<<endl;
            cout << endl;
            brojac++;
         }
     zadnji=zadnji->sljedeci;
     }
     if (lista->sljedeci==0) cout<<"Lista je prazna!!! :("<<endl;     
     else cout << "Mladih od 18 ima: "<<brojac<<". "<<endl;
}

Initial URL


Initial Description
Kod datoteke zaglavlja "lista_pokazivaci.h".

Initial Title
Datoteka zaglavlja "lista_pokazivaci.h"

Initial Tags
header

Initial Language
C++