最近对循环队列进行了深入了解,根据自己的理解用AI画了下面的示意图,并对其要点进行了归纳。如下所示:
下面是书上的习题,设计一个可以在队头和队尾进行入队、出队的队列,算是循环队列的练习升级版,代码如下:
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std;
const int MAXSIZE = 100;//循环队列长度,可存储的最大数据个数为MAXSIZE-1
typedef struct cycQueue{
int data[MAXSIZE];
int front, rear;
}cycQueue;//数据类型定义
void initQueue(cycQueue *& Q)//使用指针的引用
{
Q = (cycQueue*)malloc(sizeof(cycQueue));
Q->front = Q->rear=0;
}
int empty(cycQueue* Q)
{
if (Q->front == Q->rear)
return 1;
else
return 0;
}
int enQueue_f(cycQueue * Q, int x)//从队头入队
{
if ((Q->front - 1 + MAXSIZE) % MAXSIZE == Q->rear)//判断队是否为满
re