#include "windows.h"//Windows环境下Sleep()函数需要此头文件
#include "iostream"
#include <stdlib.h>
#define MAXQSIZE 10
#define OK 1
#define ERROR 0
typedef int Status;
typedef int QElemType;
using namespace std;
//定义结构体
typedef struct SqQueue{
QElemType *base=NULL;/*赋值为NULL的目的是防止base为野指针
野指针不同于空指针,空指针是指一个指针的值为null,
而野指针的值并不为null,而且非空,野指针会指向一段实际的内存,
只是它指向哪里我们并不知情,或者是它所指向的内存空间已经被释放,
所以在实际使用的过程中,我们并不能通过指针判空去识别一个指针是否为野指针。*/
int front,rear;
}SqQueue;
//菜单提示函数
void Prompt(){
cout<<"---------------------------------"<<endl;
cout<<"即将弹出菜单:";
for(int i=0;i<13;i++){
cout<<"* ";
Sleep(50);//windows下使用
}
cout<<"\n1.初始化 2.遍历 3.查空 4.入队 5.出队\n6.队长 7.队头 8.清空 9.销毁 10.退出";
cout<<"\n---------------------------------";
cout<<"\n请输入:";
}
//进度条打印函数
void Progressbar(){
for(int i=0;i<13;i++){
cout<<"* ";
Sleep(10);//windows下使用
}
cout<<endl<<endl;//输出一次换行
}
//初始化函数
Status InitQueue(SqQueue &Q){
Q.base=new QElemType(MAXQSIZE);//将Q.base指针指向一片申请的空间,类型为int,大小为space
if(!Q.base)//如果Q.base为NULL,即空间未申请成功
{
cout<<"\n循环队列初始化失败!"<<endl<<endl;
return ERROR;
}
else
cout<<"循环队列初始化成功!空间大小为:"<<MAXQSIZE<<endl<<endl;
Q.front=Q.rear=0;
return OK;
}
//遍历队列
Status QueueTraverse(SqQueue Q){
if
循环队列(简化版)
最新推荐文章于 2022-05-26 17:06:40 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)