#include <iostream>
#define MAX 8
using namespace std;
class Queue
{
private:
int data[MAX];
int front; //队头(第一个元素下标)
int tail; //队尾(最后一个元素后的下标)
public:
void init() // 初始化循环队列
{
front = 0;
tail = 0;
}
bool empty()
{
return front == tail?1:0; // 1为空,0非空
}
bool full()
{
return (tail+1)%MAX == front?1:0; // 1为满,0非满
}
int size()
{
return (tail+MAX-front)%MAX;
}
void push(int e)
{
if(full())
{
cout<<"入队失败"<<endl;
}
else
{
data[tail] = e;
tail = (tail+1)%MAX;
cout<<"入队成功"<<endl;
}
}
void pop()
{
if(empty())
{
cout<<"出队失败"<<endl;
}
else
{
front = (front+1)%MAX;
cout<<"出队成功"<<endl;
}
}
void show()
{
if(empty())
{
cout<<"遍历失败"<<endl;
}
else
{
for(int i=front; i!=tail; i=(i+1)%MAX)
{
cout<<data[i]<<endl;
}
}
}
};
int main()
{
Queue q1;
q1.init();
cout<<q1.empty()<<endl;
cout<<q1.full()<<endl;
cout<<q1.size()<<endl;
q1.push(1);
q1.push(2);
q1.push(3);
q1.show();
cout << "Hello World!" << endl;
return 0;
}
测试结果: