循环队列

来源:互联网 发布:网络捕鱼推广技巧 编辑:程序博客网 时间:2024/06/05 19:03
#include <stdio.h>#include <malloc.h>//循环队列 #define MAXSIZE 10typedef int sElemType;typedef struct queue{sElemType data[MAXSIZE];int front;int rear;}queue; void init_queue(queue* q) {    q->front = 0;    q->rear = 0;} void in_queue(queue* q, sElemType e) {    if ((q->rear + 1) % MAXSIZE == q->front) {    return;//队列已满 }q->data[q->rear] = e;q->rear = (q->rear + 1) % MAXSIZE;}void out_queue(queue* q, sElemType* e) {    if (q->front == q->rear) {    return;  //队列为空 }*e = q->data[q->front];q->front = (q->front + 1) % MAXSIZE;}int main() {queue* q = (queue*)malloc(sizeof(queue));init_queue(q);for (int i = 0; i < MAXSIZE; i++) {    in_queue(q, i);}sElemType e;for (int i = 0; i < MAXSIZE - 1; i++) {    out_queue(q, &e);    printf("%d ", e);}    return 0;}

0 0
原创粉丝点击