记录编号 |
52359 |
评测结果 |
AAAAAA |
题目名称 |
队列基本操作 |
最终得分 |
100 |
用户昵称 |
cstdio |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.001 s |
提交时间 |
2013-02-03 13:26:55 |
内存使用 |
0.31 MiB |
显示代码纯文本
#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;
ifstream fin("queue.in");
ofstream fout("queue.out");
const int QueueSize=10;
int front,rear,data[QueueSize]={0};
int num=0;
void push(int x){
if(num==QueueSize){
fout<<"queue out"<<endl;
return;
}
rear=(rear+1)%QueueSize;
data[rear]=x;
num++;
}
void pop(void){
if(num==0) fout<<"queue empty"<<endl;
else{
data[front]=0;
front=(front+1)%QueueSize;
num--;
}
}
void make_empty(void){
for(int i=0;i<QueueSize;i++){
data[i]=0;
}
front=0;
rear=-1;
num=0;
}
void queue_out(void){
int i=front;
fout<<num<<endl;
int sum=num;
while(sum>0){
fout<<data[i]<<" ";
i=(i+1)%QueueSize;
sum--;
};
fout<<endl;
}
int main(){
int n,i,temp,jump;
front=0,rear=-1;
fin>>n;
for(i=1;i<=n;i++){
fin>>temp;
switch(temp){
case 1:make_empty();break;
case 2:fin>>jump,push(jump);break;
case 3:pop();break;
case 4:queue_out();break;
}
}
fin.close();
fout.close();
return 0;
}