Revision: 53854
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 3, 2011 02:54 by tjelcic1
Initial Code
//main
#include <iostream>
#include <ctime>
#include "red_pokazivaci.h"
using namespace std;
red *a;
int izbor;
void drugi(int polje[],int n )
{
time_t start, end;
time(&start);
int brojac=0,vrijeme_ulaz=0,vrijeme_izlaz=0;
int tunutra=0,tvani=0;
pacijent osoba;
for(int i=0;i<n;i++)
{
osoba.x[i]=polje[i];
osoba.y[i]=polje[i+n];
cout<<"x= "<< osoba.x[i]<<endl;
cout<< osoba.y[i]<<endl<<endl<<endl;
EnQueneQ(osoba,a);
}
while(brojac<n)
{
cout<<"pacijent broj "<<brojac+1<<" je unutra "<<endl;
cout<<"pacijent je dosao "<<vrijeme_ulaz<<endl;
tunutra=FrontQ(a).y[brojac];
tvani=FrontQ(a).x[brojac];
vrijeme_ulaz+=tunutra;
cout<<"unutra je bio "<<tunutra<<endl;
cout<<"pacijent odlazi "<<vrijeme_ulaz<<endl;
vrijeme_ulaz+=tvani;
DeQueneQ(a);
brojac++;
}
time(&end);
cout<<endl<<"Vrijeme izvodjena programa: "<<difftime(end,start)<<endl;
}
void treci(int *polje,int n)
{
time_t start, end;
time(&start);
pacijent osoba;
int pom1,pom2,pom3;
for(int i=0;i<n;i++){
osoba.x[i]=polje[i];
osoba.y[i]=polje[i+n];
osoba.prioritet[i]=polje[2*n+i];
cout<<" prioriteti prije gledanja "<<osoba.prioritet[i]<<endl;
}
cout<<endl;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
{
if(osoba.prioritet[i]<osoba.prioritet[j]){
pom1=osoba.prioritet[i];
pom2=osoba.x[i];
pom3=osoba.y[i];
osoba.prioritet[i]=osoba.prioritet[j];
osoba.prioritet[j]=pom1;
osoba.x[i]=osoba.x[j];
osoba.x[j]=pom2;
osoba.y[i]=osoba.y[j];
osoba.y[j]=pom3;
}
else if(osoba.prioritet[i] == osoba.prioritet[j]){
if(osoba.x[i]<osoba.x[j])
{
pom1=osoba.prioritet[i];
pom2=osoba.x[i];
pom3=osoba.y[i];
osoba.prioritet[i]=osoba.prioritet[j];
osoba.prioritet[j]=pom1;
osoba.x[i]=osoba.x[j];
osoba.x[j]=pom2;
osoba.y[i]=osoba.y[j];
osoba.y[j]=pom3;
}
}
} }
int polje1[3*n+1];
for(int i=0;i<n;i++)
{
polje1[i]=osoba.x[i];
polje1[i+n]=osoba.y[i];
polje1[i+2*n]=osoba.prioritet[i];
cout<<"prioriteti poslije sortiranja "<<osoba.prioritet[i]<<endl;
}
cout<<endl;
time(&end);
cout<<endl<<"Vrijeme izvodjena programa: "<<difftime(end,start)<<endl;
drugi(polje1,n);
}
void random(int n,int izbor1)
{
int a[3*n+1];
time_t qTime;
time(&qTime);
srand(qTime);
rand();
for(int i=0;i<n;i++)
{
a[i]=rand()%10000+1;
a[i+n]=rand()%10000+1;
a[2*n+i]=rand()%4+1;
}
for(int i=0;i<n;i++)
{
cout<<a[i]<<","<<a[i+n]<<endl;
}
if(izbor1==1) drugi(a,n);
if(izbor1==2) treci(a,n);
}
int main ()
{
a = InitQ(a);
int n;
cout<<"1-Random vrijednosti polja i prikaz reda "<<endl;
cout<<"2-rad s prioritetima "<<endl;
cout<<"unesite izbor "<<endl;
cin>>izbor;
switch (izbor)
{
case 1:
cout<<"Koliko parova zelite unijeti "<<endl;
cin>>n;
random(n,1);
break;
case 2:cout<<"Koliko parova zelite unijeti "<<endl;
cin>>n;
random(n,2);
break;
}
system("pause");
return 0;
}
//red pokazivac
struct pacijent
{
int x[10001],y[10001];
int prioritet[10001];
};
struct elem
{
pacijent e;
elem *s;
};
struct red
{
elem *p,*z;
};
typedef struct pacijent element;
typedef struct red queue;
red* InitQ(red *Q)
{
elem *novi = new elem;
Q = new red;
novi -> s = NULL;
Q -> z = novi;
Q -> p = novi;
return Q;
}
pacijent FrontQ(red *Q)
{
return Q -> p -> s -> e;
}
void EnQueneQ(element x, red *Q)
{
elem *novi = new elem;
novi -> e = x;
novi -> s = NULL;
Q -> z -> s = novi;
Q -> z = novi;
}
void DeQueneQ(red *Q)
{
elem *brisi = Q -> p;
Q -> p = brisi -> s;
delete brisi;
}
bool IsEmptyQ(red *Q)
{
if(Q -> z == Q -> p)
return true;
return false;
}
//red_polje
struct pacijent{
int x[10001],y[10001];
int prioritet[10001];
};
struct red{
pacijent e[10000];
int p, z;
};
typedef struct red queue;
typedef struct pacijent element;
red* InitQ(red *Q){
Q = new red;
Q -> p = 0;
Q -> z = 9999;
return Q;
}
int AddOne(int n)
{
return ((n+1)%10000);
}
element FrontQ(red *Q)
{
return Q -> e[Q -> p];
}
void EnQueneQ(element x, red *Q)
{
Q -> z = AddOne(Q -> z);
Q -> e[Q -> z] = x;
}
void DeQueneQ(red *Q)
{
Q -> p = AddOne(Q -> p);
}
bool IsEmptyQ(red *Q)
{
if(AddOne(Q -> z) == Q -> p)
return true;
return false;
}
Initial URL
Initial Description
zadatak iz SP-a
Initial Title
strukture podataka
Initial Tags
c++
Initial Language
C++