大家好我是大一新生,如果代码有误或者需要改良的话可以在评论中提出,谢谢观看
#include<iostream>
#include<iomanip>
using namespace std;
#define OK 1
#define ERROR 0
#define MAXSIZE 100
#define Status int
typedef int QElemType;
typedef struct Qnode{
QElemType *data;
int frot;
int rear;
}SqQueue;
Status InitQueue(SqQueue &Q)
{
Q.data=new QElemType[MAXSIZE];
if(Q.data==NULL)
{
cout<<"初始化失败!"<<endl;
return ERROR;
}
Q.frot=Q.rear=0;
return OK;
}
Status EnQueue(SqQueue &Q,QElemType e)
{
if((Q.rear+1)%MAXSIZE==Q.frot)
{
cout<<"队列已满!"<<endl;
return ERROR;
}
Q.data[Q.rear]=e;
Q.rear=(Q.rear+1)%MAXSIZE;
return OK;
}
Status DeQueue(SqQueue &Q,QElemType &e)
{
if(Q.frot==Q.rear)
{
cout<<"队列为空!"<<endl;
return ERROR;
}
e=Q.data[Q.frot];
Q.frot=(Q.frot+1)%MAXSIZE;
return OK;
}
Status PaiQueue(SqQueue &Q1,SqQueue &Q2)
{
SqQueue Q3;
InitQueue(Q3);
QElemType e;
int c=0,n;
cout<<"input n:";
cin>>n;
while(n)
{
cin>>e;
if(e%2==0)
EnQueue(Q2,e);
else
EnQueue(Q1,e);
n--;
}
while(Q1.frot!=Q1.rear||Q2.frot!=Q2.rear)
{
if(Q1.frot!=Q1.rear&&c!=2)
{
DeQueue(Q1,e);
EnQueue(Q3,e);
c++;
}
else if(Q2.frot!=Q2.rear)
{
DeQueue(Q2,e);
EnQueue(Q3,e);
c=0;
}
else c=0;
}
cout<<"队列为:";
while(Q3.frot!=Q3.rear)
{
DeQueue(Q3,e);
cout<<e<<" ";
}
return OK;
}
main()
{
SqQueue Q1,Q2,Q3;
InitQueue(Q1);
InitQueue(Q2);
PaiQueue(Q1,Q2);
}