代码
#include <iostream>
#include<iomanip>
#define MAX 5
using namespace std;
class Queue
{
private:
int *data;
int front;
int tail;
public:
//申请size个int类型的空间
void init()
{
data = new int[MAX];
front = 0;
tail = 0;
}
//判空
bool queue_empty()
{
return front==tail;
}
//入队
void queue_push(int e)
{
//将数据放入队尾位置
data[tail] = e;
//队尾后移
tail = (tail+1)%MAX;
cout<<e<<"入队成功"<<endl;
}
//遍历队列
void queue_show()
{
//判空
if(queue_empty())
{
cout<<"遍历失败"<<endl;
return;
}
cout<<"队头到队尾元素分别是:";
for(int i=front;i!=tail;i=(i+1)%MAX)
{
cout<<setw(3)<<data[i];
}
cout<<endl;
}
//出队
void queue_pop()
{
//判空
if(queue_empty())
{
cout<<"出队失败"<<endl;
return;
}
cout<<data[front]<<"出队成功"<<endl;
//队头后移
front = (front+1)%MAX;
}
//求队列长度
int queue_size()
{
return (tail+MAX-front)%MAX;
}
//销毁
void queue_destroy()
{
delete []data;
data = nullptr;
}
};
int main()
{
Queue Q;
//调用申请函数
Q.init();
//调用入队函数
Q.queue_push(4);
Q.queue_push(7);
Q.queue_push(2);
Q.queue_push(5);
//调用遍历函数
Q.queue_show();
//调用出队函数
Q.queue_pop();
//调用遍历函数
Q.queue_show();
//调用销毁函数
Q.queue_destroy();
return 0;
}
运行结果
![](https://img-blog.csdnimg.cn/img_convert/b830537c10a4f40cff7d32c55f4fea50.png)