题解 | #【模板】队列#
【模板】队列
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; }