C++写的一个顺序队列类
VC6.0中通过的代码:
#include "stdafx.h"
#include
#include
typedef char* ELEM;
class Queue{
private:
int size;
int front;
int rear;
ELEM* listarray;
public:
Queue(const int sz)
{size=sz+1;front=rear=0;listarray=new ELEM[size];}
~Queue(){delete [] listarray;}
void clear(){front=rear;}
void enqueue(const ELEM&);
ELEM dequeue();
ELEM firstValue() const
{assert(!isEmpty());return listarray[(front+1)%size];}
bool isEmpty() const
{return front==rear;}
};
void Queue::enqueue(const ELEM& item)
{
assert((rear+1)%size!=front);
rear=(rear+1)%size;
listarray[rear]=item;
}
ELEM Queue::dequeue()
{
assert(!isEmpty());
front=(front+1)%size;
return listarray[front];
}
int main()
{
Queue qu(5);
ELEM ee[5];
ee[0]="QQLove1";
ee[1]="QQLove2";
ee[2]="QQLove3";
ee[3]="QQLove4";
ee[4]="QQLove5";
cout<<"入队"< for(int i=0;i<5;i++)
qu.enqueue(ee[i]);
for(i=0;i<5;i++)
cout<<"出队:"<return 0;
}