Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef struct _seq{
- int front, rear, maxcount;
- int data[114514];
- }i32queue;
- void initqueue(i32queue *q, int maxcount){
- q->front = 0; q->rear = 0; q->maxcount = MIN(114514, maxcount);
- }
- int queuecount(i32queue *q){
- return (q->rear - q->front + q->maxcount) % q->maxcount;
- }
- int queueempty(i32queue *q){
- return q->front == q->rear;
- }
- int queuefull(i32queue *q){
- return q->front == (q->rear + 1) % q->maxcount;
- }
- void enqueue(i32queue *q, int data){
- assert(!queuefull(q));
- q->data[q->rear] = data;
- q->rear = (q->rear + 1) % q->maxcount;
- }
- int peek(i32queue *q){
- assert(!queueempty(q));
- return q->data[q->front];
- }
- int dequeue(i32queue *q){
- assert(!queueempty(q));
- int ans = q->data[q->front];
- q->front = (q->front + 1) % q->maxcount;
- return ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment