出栈进栈的简单操作!求帮忙改一下我的程序!
题目要求:(栈和队列)输入输出要求如:
输入:5
输入(五个数):4 9 6 8 7
输入:3
输出的则是除了前面3个数之外的数: 8 7
如果输入:2
输出的则是除了前面2个数之外的数:6 8 7
如果输出的数大于或者等于5
则输出:无打印作业!
程序:
#include<iostream.h>
#include<conio.h>
#define Max 100
typedef int ElemType ;
typedef struct
{
ElemType data[Max];
int front;
int rear;
}SQUEUE;
void InitQueue(SQUEUE *SQ)//初始化
{
SQ->front=0;
SQ->rear=0;
}
int EnQueue(SQUEUE *SQ,ElemType x)//进栈
{
if((SQ->rear+1)%Max==SQ->front)
return 0;
SQ->rear=(SQ->rear+1)%Max;
SQ->data[SQ->rear]=x;
return 1;
}
int Empty(SQUEUE *SQ)//判断是否为空
{
return(SQ->front==SQ->rear)?1:0;
}
int OutQueue(SQUEUE *SQ)//出栈
{
if(Empty(SQ))
return NULL;
SQ->front=(SQ->front+1)%Max;
}
void main()
{
int t,n,m,i,j=0;
cin>>t;
for(i=0;i<t;i++)
{
SQUEUE qu;
ElemType work;
cin>>n;
cout<<endl;
while(j!=n-1)
{
InitQueue(&qu);
EnQueue(&qu);
j++;
}
cout<<endl;
cin>>m;
cout<<endl;
if(m>=n)
cout<<"无打印作业!"<<endl;
else
{
while(!Empty(&qu))
{
work=OutQueue(&qu);
cout<<work<<" ";
}
getch();
}
}
}