Return to Snippet

Revision: 60547
at November 11, 2012 08:20 by bernardamatkovic


Initial Code
struct zivotinje {
       int sifra;
       int dan, godina;
       char mjesec[15];
       char vrsta[40];
       char naziv[40];
       float cijena;
       };
       
struct lis {
       zivotinje values[200];
       int cursor;
       };

lis lista;

int br_elem=1;
       
int FirstL (lis lista) {
    return 0;   
}
int EndL (lis lista) {
    return lista.cursor;   
}
int NextL (int p, lis lista) {
    if (p<lista.cursor) return p+1;
    else return 0;   
}
int PreviousL (int p, lis lista) {
    if (p) return p-1;
    else return -1;   
}
int LocateL (char naziv[], lis& lista) {
    for (int i=0; i<lista.cursor; i++) if (naziv==lista.values[i].naziv) return i;
    return EndL(lista);
}
void InsertL (zivotinje x, int p, lis &lista) {
     lista.cursor++;
     for (int i=lista.cursor-1; i>p; i--) lista.values[i]=lista.values[i-1];
     lista.values[p]=x;
}


void DeleteL (int p, lis &lista) {
     lista.cursor--;
     for (int i=p; i<lista.cursor; i++) lista.values[i]=lista.values[i+1];     
}

          
zivotinje Retreive (int p, lis lista) {
       return lista.values[p];       
}
void DeleteAllL (lis &lista) {
     lista.cursor=0;     
}
void InitL (lis &lista) {
     lista.cursor=0;     
}


void spoji(zivotinje a[], int i, int k, int j) {
     int I=i,J=k+1,K=0;
     zivotinje *b = new zivotinje [j-i+1];
     
     while(I<=k && J<=j){
                
                if(a[I].cijena>a[J].cijena) b[K++]=a[I++];
                else if(a[I].cijena<a[J].cijena) b[K++]=a[J++];
                else if(strcmp(a[I].naziv,a[J].naziv)==-1) b[K++]=a[J++]; 
                else b[K++]=a[I++];                                              
                
                }
                
     if(I>k) while(J<=j) b[K++]=a[J++];
     else while(I<=k) b[K++]=a[I++];
     
     for(I=0;I<=j-i;I++) a[i+I]=b[I];
     delete [] b;
     
     }
     
void msort(zivotinje a[],int i, int j) {
     if(i<j) {
             int k=(i+j)/2;
             msort(a,i,k);
             msort(a,k+1,j);
             spoji(a,i,k,j);
             }
     }
     
void msort() {
     msort(lista.values,0,br_elem-1);
     }

Initial URL

                                

Initial Description
Biblioteka zaglavlja s funkcijama za implementaciju liste pomoću polja

Initial Title
Biblioteka listapolje.h

Initial Tags

                                

Initial Language
C++