Revision: 60547
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
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++