#include <stdio.h>
#include <stdbool.h>
#define MaxSize 10
typedef struct
{
int data[MaxSize];
int front,rear;
}SqQueue;
/*初始化*/
void Init(SqQueue *Q)
{
Q->front = Q->rear = 0;
}
/*判断队列是否为空*/
bool JudgeEmpty(SqQueue *Q)
{
if(Q->front == Q->rear)return true;
else return false;
}
/*入队*/
void EnQueue(SqQueue *Q,int num)
{
Q->data[Q->rear] = num;
Q->rear = (Q->rear + 1) % MaxSize;
}
/*出队*/
void DeQueue(SqQueue *Q)
{
int num = Q->data[Q->front];
printf("%d ",num);
Q->front = (Q->front + 1) % MaxSize;
}
/*判断队是否满*/
bool JudgeFull(SqQueue *Q)
{
if((Q->rear + 1) % MaxSize == Q->front)return true;
else return false;
}
int main(int argc, char const *argv[]) {
SqQueue Q;
int number;
Init(&Q);//初始化队列
printf("请输入数字 -1结束:");
scanf("%d",&number);
while (number != -1)
{
EnQueue(&Q,number);
if(JudgeFull(&Q))
{
printf("队溢出!!\n");
break;
}
scanf("%d",&number);
}
while (!JudgeEmpty(&Q))
{
DeQueue(&Q);
}
return 0;
}
王道考研 ++++ 循环队列(C语言)
猜你喜欢
转载自blog.csdn.net/WX_1218639030/article/details/98102597
今日推荐
周排行