#define _CRT_SECURE_NO_DEPRECATE
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MaxSize 5
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize]; //数组、存储MaxSize-1个元素
int front, rear; //队列头、队列尾下标
}sqQueue;
//初始化
void InitQueue(sqQueue *Q)
{
Q->rear = Q->front = 0;
}
//判空
int isEmpty(sqQueue *Q)
{
if (Q->rear == Q->front)
return 1;
else
return 0;
}
//入队
int EnQueue(sqQueue *Q, ElemType x)
{
if ((Q->rear + 1) % MaxSize == Q->front)
return 0;
Q->data[Q->rear] = x;
Q->rear = (Q->rear + 1) % MaxSize;
return 1;
}
//出队
int DeQueue(sqQueue *Q, ElemType *x)
{
if (Q->rear == Q->front)
return 0;
*x = Q->data[Q->front];
Q->front = (Q->front + 1) % MaxSize;
return 1;
}
int main()
{
sqQueue Q;
int ret; //返回值
ElemType element; //出队元素
InitQueue(&Q);
ret = isEmpty(&Q);
if (ret)
{
printf("队列为空\n");
}
else
{
printf("队列不为空\n");
}
EnQueue(&Q, 3);
EnQueue(&Q, 4);
EnQueue(&Q, 5);
ret= EnQueue(&Q, 6);
//因为队列最大长度为MaxSize-1个元素,因此7入队时失败
ret = EnQueue(&Q, 7);
if (ret)
{
printf("队列为空\n");
}
else
{
printf("队列不为空\n");
}
ret = DeQueue(&Q, &element);
if (ret)
{
printf("出队成功,元素值为%d\n", element);
}
else
{
printf("出队失败\n");
}
ret = DeQueue(&Q, &element);
if (ret)
{
printf("出队成功,元素值为%d\n", element);
}
else
{
printf("出队失败\n");
}
ret = EnQueue(&Q, 8);
if (ret)
{
printf("入队成功\n");
}
else
{
printf("入队失败\n");
}
system("pause");
}
循环队列
最新推荐文章于 2024-06-09 22:16:32 发布