题解 | #【模板】队列#
【模板】队列
https://www.nowcoder.com/practice/afe812c80ad946f4b292a26dd13ba549
队列的基本用法
#include <stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#define MAXSIZE 100000
struct queue{
int data[MAXSIZE];
int front;
int tail;
};
void InitQueue(struct queue* q){
q->front = -1;
q->tail = -1;
}
void pushQueue(struct queue* q,int temp){
q->data[q->tail++] = temp;
}
bool popueue(struct queue* q,int* temp){
if(q->front == q->tail){
return false;
}
*temp = q->data[q->front++];
return true;
}
bool front(struct queue* q,int* temp){
if(q->front == q->tail) return false;
*temp = q->data[q->front];
return true;
}
int main() {
struct queue* q= (struct queue*)malloc(sizeof(struct queue));
InitQueue(q);
int num;
scanf("%d",&num);
for(int i = 0;i<num;i++){
char temp[6];
scanf("%s",temp);
if(!strcmp(temp,"push")){
int num;
scanf("%d",&num);
pushQueue(q,num);
}else if(!strcmp(temp,"pop")){
int num;
if(!popueue(q,&num)) printf("error\n");
else printf("%d\n",num);
}else{
int num;
if(!front(q,&num)) printf("error\n");
else printf("%d\n",num);
}
}
return 0;
}
