class Queue
{
private:
struct Node{Item item;struct Node * next;};
enum {Q_SIZE = 10};
Node * front; //前一个数据
Node * rear; //后一个数据
int items; //当前数据的数量
const int qsize; //最大的数量
public:
Queue(int qs):qsize(qs),front(NULL),rear(NULL),items(0)
{
//front = NULL;
//rear = NULL;
//items = 0;
}
~Queue();
bool isempty()const;
bool isfull()const;
int queuecount()const;
bool enqueue(const Item & item);//增至队尾
bool dequeue(Item & item);//队首删除
};
bool enqueue(const Item & item)
{
//满的就退出
if(this->isfull())
{
return false;
}
//空的队列就增加
Node *add = new Node;
if(add == NULL)
return false;//未申请到内存也退出
add->item = item; //add的item就是形参
add->next = NULL;//add结构的next成员指针设为null
items++;
if(front == NULL) //如果队列是空
front = add; //add就为第一个
else
rear->next = add; //否则,当的rear的链接域指向add,
rear = add;//现在add是最后1个结点了,将它的地址给rear
return true;
}
节选部分,看不