#include<iostream>
#include<stdlib.h>
using namespace std;
class ArrayQueue{
public:
ArrayQueue()
{
front=rear=0;
number=0;
int queueSize=100;
data=new int[queueSize];
}
ArrayQueue(int queueSize)
{
front=rear=0;
number=0;
this->queueSize=queueSize;
data=new int[queueSize];
}
~ArrayQueue()
{
delete[]data;
}
void enQueue(int x);
int deQueue();
bool isEmpty();
bool isFull();
private:
int *data;
int front,rear;
int number;
int queueSize;
};
bool ArrayQueue::isFull()
{
return number==queueSize;
}
bool ArrayQueue::isEmpty()
{
return number==0;
}
void ArrayQueue::enQueue(int x)
{
if(!isFull())
{
rear=(rear+1)%queueSize;
number++;
data[rear]=x;
}
else{
cout<<"full queue"<<endl;
}
}
int ArrayQueue::deQueue()
{
if(!isEmpty())
{
front=(front+1)%queueSize;
number--;
return data[front];
}
return -1;
}
int main()
{
ArrayQueue aq(10);
for(int i=0;i<8;i++)
{
aq.enQueue(i);
}
while(!aq.deQueue()){
cout<<aq.deQueue()<<endl;
}
system("pause");
return 0;
}
C++ 循环队列的实现
最新推荐文章于 2024-04-22 14:48:17 发布