wojiaocbj

Untitled

Apr 18th, 2022
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.77 KB | None | 0 0
  1. typedef struct _seq{
  2.     int front, rear, maxcount;
  3.     int data[114514];
  4. }i32queue;
  5. void initqueue(i32queue *q, int maxcount){
  6.     q->front = 0; q->rear = 0; q->maxcount = MIN(114514, maxcount);
  7. }
  8. int queuecount(i32queue *q){
  9.     return (q->rear - q->front + q->maxcount) % q->maxcount;
  10. }
  11. int queueempty(i32queue *q){
  12.     return q->front == q->rear;
  13. }
  14. int queuefull(i32queue *q){
  15.     return q->front == (q->rear + 1) % q->maxcount;
  16. }
  17. void enqueue(i32queue *q, int data){
  18.     assert(!queuefull(q));
  19.     q->data[q->rear] = data;
  20.     q->rear = (q->rear + 1) % q->maxcount;
  21. }
  22. int peek(i32queue *q){
  23.     assert(!queueempty(q));
  24.     return q->data[q->front];
  25. }
  26. int dequeue(i32queue *q){
  27.     assert(!queueempty(q));
  28.     int ans = q->data[q->front];
  29.     q->front = (q->front + 1) % q->maxcount;
  30.     return ans;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment