
#include<stdio.h>
#include <stdlib.h>
#define MaxSize 10
//数组方式实现队列,出队时,实际上不能删除数组中的元素,只是改变front,rear的值,仍然占用空间
//循环队列,数组第一个空间不放值
typedef struct Queue
{
int data[MaxSize];
int front;
int rear;
}Queue,*PQueue;
void add(PQueue q,int item)
{
if((q->rear+1)%MaxSize == q->front)
{
printf("队列满\n");
}
else
{
q->rear = (q->rear+1)%MaxSize;
q->data[q->rear] = item;
printf("%d已入队\n",item);
}
}
void traversal(PQueue q)
{
int i = q->front+1;
int j = q->rear;
for(i;i<j;i++)
{
printf("%d\n",q->data[i]);
}
}
void del(PQueue q)
{
if(q->front == q->rear)
{
printf("队列空\n");
}
else
{
q->front = (q->front+1)%MaxSize;
printf("%d已出队\n",q->data[q->front]) ;
}
}
void init(PQueue q)
{
q->front = 0;
q->rear = 0;
}
int main()
{
PQueue q;
q = (PQueue)malloc(sizeof(Queue));
init(q);
add(q,1);
add(q,2);
add(q,3);
add(q,4);
add(q,5);
add(q,6);
add(q,7);
add(q,8);
add(q,9);
add(q,10);
traversal(q);
del(q);
del(q);
traversal(q);
return 0;
}
有问题,欢迎评论区一起讨论
本人Hexo博客地址:https://qietingfengyindiary.github.io/
版权声明:本文为weixin_44643488原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。