64,649
社区成员
发帖
与我相关
我的任务
分享
#include <iostream >
using namespace std;
#define MaxLength 6
typedef int elemType;
class Queue
{
public:
Queue();
virtual ~Queue(); //增加个析构函数
int QueueLength();
void EnQueue(elemType e);
int DeQueue(elemType &e);
protected:
elemType *Q;
elemType front;
elemType rear;
elemType counter;
elemType a[MaxLength];
};
Queue::Queue()
{
Q = new elemType[ MaxLength ]; //修改此处
if(!Q)
return ;
front = rear=0;
counter = 0;
}
Queue::~Queue()
{
if (Q)
{
delete [] Q;
}
}
int Queue::QueueLength()
{
return counter;
}
void Queue::EnQueue(elemType e)
{
if(counter == MaxLength)
return ;
Q[rear] = e;
rear = (rear + 1)%MaxLength;
counter++;
}
int Queue::DeQueue( elemType &e)
{
if(counter == 0)
return 1;
e= Q[front];
front = (front + 1)%MaxLength;
counter--;
return e;
}
int main()
{
Queue a;
int Length = 0;
Length = a.QueueLength();
cout <<Length;
a.EnQueue(12);
int LE = 0;
LE = a.QueueLength();
cout <<LE;
return 0;
}