只要前面队列理解了,懂得顺序存储结构的循环队列的核心在于取模,就好写
#include<iostream>
#include<stdio.h>
#define MaxSize 12
using namespace std;
初始化
//定义结构体
typedef struct
{
int data[MaxSize];
int front, rear;
}Queue, *PQueue;
//初始化
void initQueue(Queue &Q)
{
Q.front = Q.rear = 0;
}
特判
//判断是否为空
bool isEmpty(Queue q)
{
if (q.front == q.rear) return true;
else return false;
}
//判断是否队满
bool isFull(Queue &q)
{
if ((q.rear + 1)%MaxSize == q.front) return true;
else return false;
}
入队
//入队
bool EnQueue(Queue &q, int x)
{
if (isFull(q)) return false;//栈满
else
{
q.data[q.rear] = x;
q.rear = (q.rear + 1)%MaxSize;
return true;
}
}
出队
//出队
bool DeQueue(Queue &q, int &x)
{
if (isEmpty(q)) return false;//栈空
else
{
x = q.data[q.front];
q.front = (q.front+1)%MaxSize;
return true;
}
}
发现有问题了,及时跟我反应
返回目录:
https://www.acwing.com/file_system/file/content/whole/index/content/5976074/