Динамічні структури даних. Циклічна черга. Функції та процедури, що працюють з циклічною чергою, страница 6

cout<<"Очередь пуста!!!";

for(int i=0;i<number;i++)

{   show_info(que);

que=que->right;

}

}     

void correct(gidmetsl *que)

{  if((liststart==NULL) && (listfinal==NULL))

cout<<"Очередь пуста!!!"<<endl;

else{

int k;

cout<<("Номер эл-та, который вы хотите изменить")<<endl;

cin>>k;

for(int i=0;i<k-1;i++) que=que->right;

insert(que);}

}

void WaterList(gidmetsl *que)

{  if((liststart==NULL) && (listfinal==NULL))

cout<<"Очередь пуста!!!"<<endl;

else{

int k;

cout<<("Введите предел значения температуры ")<<endl;

cin>>k;

for(int i=0;i<number;i++)

{

if(que->WaterTemperature<=k)

show_info(que);

que=que->right;

}}

}

void PressureList(gidmetsl *que)

{  if((liststart==NULL) && (listfinal==NULL))

cout<<"Очередь пуста!!!";

else

for(int i=0;i<number;i++)

{

if(que->AtmospherePressure>=760)

show_info(que);

que=que->right;

}

}

void MAX(gidmetsl *que, int choice)

{    

if((liststart==NULL) && (listfinal==NULL))

cout<<"Очередь пуста!!!"<<endl;

else

{float k=0;

gidmetsl *gid;

for(int i=0;i<number;i++)

{   

if(choice==1)

if(que->AirTemperature>k)

{

k=que->AirTemperature;

gid=que;

}

if(choice==2)

if(que->WaterTemperature>k)

{

k=que->WaterTemperature;

gid=que;

}

que=que->right;

}

cout<<"Максимальная температура зарегестрирована: "<<gid->data<<endl;}

}

void readf()

{

FILE *f;

if((f=fopen("A.txt","r"))==NULL)

{

cout<<"Error";

}

else

{

gidmetsl* d=new gidmetsl;

fread(d,sizeof(gidmetsl),1,f);

liststart=listfinal=d;

while(!feof(f))

{

d=new gidmetsl;

fread(d,sizeof(gidmetsl),1,f);

if(!feof(f))

{

number++;

listfinal->right=d;

listfinal=d;

}       

}

number++;

fclose(f);

}

}

void writef(gidmetsl *que)

{

if((liststart==NULL) && (listfinal==NULL))

cout<<"Очередь пуста!!!"<<endl;

FILE* f;

if((f=fopen("A.txt","w"))==NULL)

{

cout<<"Error, the program didn't saved";

}

else

{

gidmetsl* d=que;

for(int i=0; i<number;i++)

{

fwrite(d,sizeof(gidmetsl),1,f);

d=d->right;

}

fclose(f);

}

}

void Sorting_Real(gidmetsl *ptr)

{

struct gidmetsl temp;

for(int j=0;j<number-1; j++)

{

ptr=liststart;

for(int i=0;i<number-1;i++)

{

if(ptr->AirTemperature > ptr->right->AirTemperature)

{

//======================================

temp.data=ptr->data;

temp.AirTemperature=ptr->AirTemperature;

temp.WaterTemperature=ptr->WaterTemperature;

temp.AtmospherePressure=ptr->AtmospherePressure;

//=======================================

ptr->data=ptr->right->data;

ptr->AirTemperature=ptr->right->AirTemperature;

ptr->WaterTemperature=ptr->right->WaterTemperature;

ptr->AtmospherePressure=ptr->right->AtmospherePressure;

//=======================================

ptr->right->data=temp.data;

ptr->right->AirTemperature=temp.AirTemperature;

ptr->right->WaterTemperature=temp.WaterTemperature;

ptr->right->AtmospherePressure=temp.AtmospherePressure;

//=======================================

}

ptr=ptr->right;

}

}

}

void Sorting()

{

if((liststart==NULL) && (listfinal==NULL))

{

cout<<"Очередь пуста!!!";

getch();

return;

}

else

{

Sorting_Real(liststart);

cout<<"Очередь отсортирована"<<endl;

}

}