#include<stdio.h>數組
#include<stdlib.h>函數
#define MAXSIZE 5指針
typedef int DataType;code
typedef struct{隊列
DataType queue[MAXSIZE];//數據數組get
int rear;//尾指針it
int front;//頭指針io
int count;//計數器queue
} Queue;數據
void initQueue(Queue *q);//初始化函數
int isEmpty(Queue q);//判非空
int insertRear(Queue *q,DataType x);//隊尾插入函數
int deleteFront(Queue *q,DataType *x);//隊頭刪除函數
int getFront(Queue q,DataType *x);//取對頭元素
int main(void){ Queue q; int x; initQueue(&q); isEmpty(q); insertRear(&q,5); getFront(q,&x); printf("x=%d\n",x); deleteFront(&q,&x); printf("count=%d\n",q.count); return 0; }
void initQueue(Queue *q){ q->rear=0; q->front=0; q->count=0; }
int isEmpty(Queue q){ if(q.count==0){ printf("隊列爲空\n"); return 0; } printf("隊列非空\n"); return 1; }
int insertRear(Queue *q,DataType x){ if(q->count==MAXSIZE){ printf("隊列爲滿\n"); return 0; }
q->queue[q->rear]=x; q->rear=(q->rear + 1 )% MAXSIZE; q->count++; printf("插入成功\n"); return 1;
}
int deleteFront(Queue *q,DataType *x){ if(q->count==0){ printf("隊列爲空,無數可刪\n"); return 0; } q->count--; q->front=(q->front+1)%MAXSIZE; printf("刪除隊列成功\n"); return 1; }
int getFront(Queue q,DataType *x){ if(q.count==0){ printf("隊列爲空,沒法取\n"); return 0; } *x=q.queue[q.front]; printf("取數據成功\n"); return 1; }