数据结构之循环队列

#include<bits/stdc++.h>
#define maxsize 1024
typedef struct
{
    int data[maxsize];
    int front,rear;
    int num;//队列中间元素的个数
}csequeue;//循环队列的定义
csequeue *q;
void init_sequeue()
{
    q=(csequeue*)malloc(sizeof(csequeue));//为q队列申请存储空间
    q->rear=q->front=maxsize-1;
    q->num=0;
}//构建空的循环队列

int in_sequeue(csequeue *q,int x)
{
    if(q->num==maxsize-1)
    {
        printf("队满
");
        return -1;
    }
    else
    {
        q->rear=(q->rear+1)%maxsize;
        q->data[q->rear]=x;
        q->num++;
        return 1;
    }
}//入循环队列

int out_sequeue(csequeue *q)
{
    if(q->num==0)
    {
        printf("队空
");
        return -1;
    }
    else
    {
        q->front=(q->front+1)%maxsize;
        int x=q->data[q->front];
        q->num--;
        return x;
    }
}//出循环队列

int empty_sequeue(csequeue *q)
{
    if(q->num==0)
        return 1;
    else
        return 0;
}//判断循环队列是不是空

int main()
{
    init_sequeue();
    printf("请输入要进入循环队列的数据个数:
");
    int n;
    scanf("%d",&n);
    int i;
    for(i=0;i<n;i++)
    {
        int x;
        scanf("%d",&x);
        in_sequeue(q,x);
    }
    while(empty_sequeue(q)==0)
    {
        int x=out_sequeue(q);
        printf("%d
",x);
    }
    return 0;
}

不正确的地方麻烦指正哦!!!

原文地址:https://www.cnblogs.com/yinbiao/p/8708635.html