普通队列
#include"stdio.h"#include"stdlib.h"#include"string.h"#define MAXSIZE 20typedefstruct{int data[MAXSIZE];int front;int rear;}Queue;intenQueue(Queue* q,int e){if(q->rear>=MAXSIZE&& q->front<=q->rear){printf("\n满\n");return0;}
q->data[q->rear]= e;
q->rear++;return1;}intdeQueue(Queue* q){int t;if(q->front== q->rear){printf("\n空\n");return0;}
t= q->data[q->front];printf("%d ",t);
q->front++;return1;}voidprint_queue(Queue* q){for(int i=q->front; i<q->rear; i++){printf("%d ",q->data[i]);}printf("\n");}intmain(){
Queue q;
q.front= q.rear=0;for(int i=1; i<=6; i++){enQueue(&q,i);}for(int i=1; i<=7; i++){deQueue(&q);}return0;}
循环队列
#include"stdio.h"#include"stdlib.h"#include"string.h"#define MAXSIZE 20typedefstruct{int data[MAXSIZE];int front;int rear;}Queue;intenQueue(Queue* q,int e){if((q->rear+1)%MAXSIZE== q->front){return0;}
q->data[q->rear]= e;
q->rear=(q->rear+1)%MAXSIZE;return1;}intdeQueue(Queue* q){if(q->front== q->rear){printf("\n空\n");return0;}int t= q->data[q->front];printf("%d ",t);
q->front=(q->front+1)%MAXSIZE;return1;}intmain(){
Queue q;
q.front= q.rear=0;for(int i=1; i<=6; i++){enQueue(&q,i);}for(int i=1; i<=6; i++){deQueue(&q);}return0;}