鱼天翱 2019-06-21
循环队列
#define SIZE 4 struct queue{ int head, tail; int que[SIZE]; }; void init(struct queue* q){ q->head = q->tail = 0; } int isEmpty(const struct queue* q) const { return q->head == q->tail; } int isFull(const struct queue* q) const { return (q->tail + 1) % SIZE == q->head; } void push(struct queue* q, int val){ q->que[q->tail++] = val; q->tail = q->tail % SIZE; } int pop(struct queue* q){ int res = q->que[q->head++]; q->head = q->head % SIZE; return res; }