循环队列
2015-04-08 21:19
162 查看
这个题主要是需要注意队列溢出的情况:存入数据不能超出题中所述
#include<stdio.h>
#include<string.h>
struct Date
{
int rear,front;
int arr[100];
};
int main()
{
void res(struct Date p);
struct Date p;
res(p);
return 0;
}
void res(struct Date p)
{
char str[10];
int room,total,num[100];
while(scanf("%d",&room)!=EOF)
{
p.front=p.rear=0;
scanf("%d",&total);
int i,j=0,N;
for(i=0;i<total;i++)
{
scanf("%s",str);
if(strcmp(str,"in")==0)
{
scanf("%d",&N);
if(p.rear-p.front+1<room)
{
p.arr[p.rear]=N;
p.rear++;
}
}
else if(strcmp(str,"out")==0)
{
p.front++;
}
}
for(i=p.front;i<p.rear;i++)
{
if(i==p.front)
printf("%d",p.arr[i]);
else
printf(" %d",p.arr[i]);
}
}
}
#include<stdio.h>
#include<string.h>
struct Date
{
int rear,front;
int arr[100];
};
int main()
{
void res(struct Date p);
struct Date p;
res(p);
return 0;
}
void res(struct Date p)
{
char str[10];
int room,total,num[100];
while(scanf("%d",&room)!=EOF)
{
p.front=p.rear=0;
scanf("%d",&total);
int i,j=0,N;
for(i=0;i<total;i++)
{
scanf("%s",str);
if(strcmp(str,"in")==0)
{
scanf("%d",&N);
if(p.rear-p.front+1<room)
{
p.arr[p.rear]=N;
p.rear++;
}
}
else if(strcmp(str,"out")==0)
{
p.front++;
}
}
for(i=p.front;i<p.rear;i++)
{
if(i==p.front)
printf("%d",p.arr[i]);
else
printf(" %d",p.arr[i]);
}
}
}