#include<stdio.h>
#include<stdlib.h>
#define N 10
typedef struct quene{
int date[N];
int front;
int back;
}Lnode,*squeue;
//创建一个队列
squeue queue_create()
{
squeue q=NULL;
q=(squeue)malloc(sizeof(Lnode));
q->front=N-1;
q->back=N-1;
return q;
}
//入队
int queue_push(squeue q,int value)
{
if(queue_is_full(q)==1)
{
printf("squeue is full\n");
return 1;
}
q->back=(q->back+1)%N;
q->date[q->back]=value;
return 0;
}
//出队
int queue_pop(squeue q)
{
int value;
if(queue_is_empty(q)==1)
{
printf("squue is empty\n");
return 1;
}
q->front=(q->front+1)%N;
value=q->date[q->front];
return value;
}
//判断队列是否为满
int queue_is_full(squeue q)
{
return (q->back+1)%N==q->front? 1:0;
}
//判断队列是否为空
int queue_is_empty(squeue q)
{
return q->front==q->back?1:0;
}
//显示数据
void queue_show(squeue q)
{
int i;
if(queue_is_empty(q)==1)
{
printf("app is empty\n");
}
for(i=(q->front+1)%N;i<(q->back+1)%N;i=(i+1)%N)
{
printf("%d ",q->date[i]);
}
}
int main(int argc,char *argv[])
{
squeue q;
int value;
q=queue_create();
queue_push(q,10);
queue_push(q,20);
queue_push(q,30);
queue_push(q,40);
queue_push(q,50);
// value= queue_pop(q);
// printf("%d\n ",value);
queue_show(q);
return 0;
}