Return to Snippet

Revision: 35012
at November 1, 2010 05:53 by alepk


Initial Code
#include <iostream>
using namespace std;
struct pacijent{
       int matbr;
       int dob;
       char preime[30];
       char povijest[200];};
       
struct tpacijenti{
       pacijent lovro;
       tpacijenti *sljedeci;};


void InitL(tpacijenti *lista){lista->sljedeci=NULL;}
tpacijenti *FirstL(tpacijenti *lista){return lista->sljedeci;} 
tpacijenti *EndL(tpacijenti *lista){return NULL;}
tpacijenti *NextL(int p, tpacijenti *lista){
     tpacijenti *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;}}}}

tpacijenti *PreviousL(int p, tpacijenti *lista){
     tpacijenti *zadnji, *prethodni;
     prethodni=lista;
     zadnji=prethodni->sljedeci;
     int brojac=2;
     if(p==1 || p==0)cout<<"Ne postoji element!"<<endl;
     else{
          while(zadnji->sljedeci){
                                  prethodni=zadnji;
                                  zadnji=zadnji->sljedeci;
                                  prethodni->sljedeci=zadnji;
                                  brojac++;
                                  if(brojac==p){
                                                return prethodni->sljedeci;}}}}
tpacijenti *LocateL(int A, tpacijenti *lista){
     tpacijenti *zadnji;
     zadnji=lista;
     int brojac=1;
     while(zadnji->sljedeci){
         if(A==brojac) return zadnji->sljedeci;
         zadnji=zadnji->sljedeci;
         brojac++;
     }
     return EndL(lista);}




void Insert(pacijent x, tpacijenti *lista){
     tpacijenti *zadnji, *novi;
     zadnji=lista;
     while(zadnji->sljedeci)
     zadnji=zadnji->sljedeci;
     novi=new tpacijenti;
     novi->lovro=x;
     zadnji->sljedeci=novi;
     novi->sljedeci=NULL;}     


void Delete(tpacijenti *lista, int matbr){
     tpacijenti *brisi=lista->sljedeci;
     tpacijenti *prethodni=lista;
     bool brisao = false;
     while(brisi){
                  if(brisi->lovro.matbr==matbr){
                                                prethodni->sljedeci=brisi->sljedeci;
                                                delete brisi;
                                                brisao=true;
                                                cout << "Pacijent je izbrisan iz evidencije!" << endl;
                                                break;}  
                          
                  prethodni=brisi;
                  brisi=brisi->sljedeci;}
                  if(!brisao){cout << "Nepostojeci pacijent!" << endl;}
                  }


int sort(tpacijenti *lista){
     
  tpacijenti *prethodni,*tekuci,*sljedeci;
  int brojac=0;
  int indikator;
  do{
    indikator = 0;
    tekuci=lista->sljedeci;
    prethodni=lista;
    if(lista->sljedeci==NULL) {cout << "Lista je prazna!" << endl;
     return 0;}
    while (tekuci->sljedeci){
      sljedeci=tekuci->sljedeci;
      if (tekuci->lovro.matbr > sljedeci->lovro.matbr){
         prethodni->sljedeci=sljedeci;
         tekuci->sljedeci=sljedeci->sljedeci;
         sljedeci->sljedeci=tekuci;
         indikator=1;
      }
      prethodni=prethodni->sljedeci;
      tekuci=prethodni->sljedeci;
    }
  } while (indikator==1);
  return 1;}
  

int ispis(tpacijenti *lista){
     tpacijenti *zadnji;
     zadnji=lista->sljedeci;
     if(lista->sljedeci==NULL) {cout << "" << endl;
     return 0;}
     cout << "Sortirano prema maticnom broju uzlazno: " << endl;
     cout << "----------------------------------------" << endl;
     while(zadnji){
                             cout<<"Maticni broj: "<<zadnji->lovro.matbr<<endl;
                             cout<<"Ime i prezime: "<<zadnji->lovro.preime<<endl;
                             cout<<"Dob: "<<zadnji->lovro.dob<<endl;
                             cout<<"Povijest bolesti: " << zadnji->lovro.povijest << endl;
                             cout<<"-----------------------------------------"<<endl;
                             zadnji=zadnji->sljedeci;}
                             return 1;}
                             
                             
void mladji(tpacijenti *lista){
     int brojac=0;
     tpacijenti *zadnji;
     zadnji=lista;
     while(zadnji){
         if (zadnji->lovro.dob<18){
            cout << "Maticni broj: "<<zadnji->lovro.matbr<<endl;
            cout << "Ime i prezime: "<<zadnji->lovro.preime<< endl;
            cout << "Dob: "<<zadnji->lovro.dob<<endl;
            cout << "Povijest bolesti: " <<zadnji->lovro.povijest << endl;
            cout << "----------------"<<endl;
            brojac++;
         }
     zadnji=zadnji->sljedeci;} cout << "U evidenciji se nalazi "<<brojac<< " mladjih od 18 godina." << endl;}

Initial URL


Initial Description
Biblioteka - implementacija liste pomoću pokazivaca

Initial Title
biblioteka_pokazivaci_alpek

Initial Tags


Initial Language
C++