#include<stdio.h>
#include<stdlib.h>
#define N 100000 //定义队列最大多少个
struct queue
{
int data[N];//保存数据的数组
int front; //数据的开头
int rear; //数据的结尾
};
typedef struct queue Q; //给已经有的类型简化一下
void init(Q *myqueue)//初始化结构体
{
myqueue->front = myqueue->rear = 0;
}
int isempty(Q *myqueue)//判断是否为空,1为空,0不为空
{
if (myqueue->front==myqueue->rear)
{
return 1;
}
else
{
return 0;
}
}
int enQueue(Q *myqueue, int num)//入队
{
if (myqueue->rear == N)
{
printf("失败");
return -1;
}
else
{
myqueue->data[myqueue->rear] = num;//赋值
myqueue->rear += 1;//增加一个
}
return 0;
}
int DeQueue(Q *myqueue)//出队
{
if (myqueue->front==myqueue->rear)
{
printf("失败");
return -1;
}
else
{
myqueue->front += 1;
return myqueue->data[myqueue->front-1];
}
}
void printfQ(Q *myqueue) //打印队列元素
{
if (myqueue->front==myqueue->rear)
{
printf("为空");
}
else
{
printf("%d\n",myqueue->data[myqueue->front]);
}
}
int gethead(Q *myqueue)//获取开头的一个节点
{
if (myqueue->front == myqueue->rear)
{
printf("为空");
return -1;
}
else
{
return myqueue->data[myqueue->front];
}
}
int main(){
Q Q1;//创建
init(&Q1);
int n = 0;
int m = 0;
scanf("%d",&n);
int i;
char a[10] = {0};
for(i = 0;i < n;i++){
scanf("%s",a);
if(strcmp(a,"push")==0){
scanf("%d",&m);
enQueue(&Q1, m);
//printfQ(&Q1);
}else{
if(isempty(&Q1)==1){
printf("error\n");
}else{
if(strcmp(a,"pop")==0){
printfQ(&Q1);
DeQueue(&Q1);
}else if(strcmp(a,"front")==0){
printfQ(&Q1);
}
}
}
}
return 0;
}
#include<stdlib.h>
#define N 100000 //定义队列最大多少个
struct queue
{
int data[N];//保存数据的数组
int front; //数据的开头
int rear; //数据的结尾
};
typedef struct queue Q; //给已经有的类型简化一下
void init(Q *myqueue)//初始化结构体
{
myqueue->front = myqueue->rear = 0;
}
int isempty(Q *myqueue)//判断是否为空,1为空,0不为空
{
if (myqueue->front==myqueue->rear)
{
return 1;
}
else
{
return 0;
}
}
int enQueue(Q *myqueue, int num)//入队
{
if (myqueue->rear == N)
{
printf("失败");
return -1;
}
else
{
myqueue->data[myqueue->rear] = num;//赋值
myqueue->rear += 1;//增加一个
}
return 0;
}
int DeQueue(Q *myqueue)//出队
{
if (myqueue->front==myqueue->rear)
{
printf("失败");
return -1;
}
else
{
myqueue->front += 1;
return myqueue->data[myqueue->front-1];
}
}
void printfQ(Q *myqueue) //打印队列元素
{
if (myqueue->front==myqueue->rear)
{
printf("为空");
}
else
{
printf("%d\n",myqueue->data[myqueue->front]);
}
}
int gethead(Q *myqueue)//获取开头的一个节点
{
if (myqueue->front == myqueue->rear)
{
printf("为空");
return -1;
}
else
{
return myqueue->data[myqueue->front];
}
}
int main(){
Q Q1;//创建
init(&Q1);
int n = 0;
int m = 0;
scanf("%d",&n);
int i;
char a[10] = {0};
for(i = 0;i < n;i++){
scanf("%s",a);
if(strcmp(a,"push")==0){
scanf("%d",&m);
enQueue(&Q1, m);
//printfQ(&Q1);
}else{
if(isempty(&Q1)==1){
printf("error\n");
}else{
if(strcmp(a,"pop")==0){
printfQ(&Q1);
DeQueue(&Q1);
}else if(strcmp(a,"front")==0){
printfQ(&Q1);
}
}
}
}
return 0;
}