实在看不懂了,C++primer plus 12章队列模拟
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;
return true;
}这个bool函数看不懂了,rear = add到底什么意思啊?上面已经rear->next = add了,让rear的next指针指向add,因此add变成最后一个节点,再用rear = add,不就又重复操作,且将rear->next = add 刚赋的值给覆盖了吗?
期待帮助,尽肯能通俗详细的教教我,谢了!
...全文
相关推荐
C++ Primer Plus 6th 2011(New C++11 Coverage)
C++ Primer Plus 6th 2011(New C++11 Coverage)
ATM队列模拟
本资源属于c++ primer plus 书上一个ATM队列模拟程序的源代码
C++Heather银行对顾客排队等待的时间进行估测问题 《C++ Primer Plus》12.7 队列模拟 学习笔记
【C++】Heather银行对顾客排队等待的时间进行估测问题 《C++ Primer Plus》12.7 队列模拟 学习笔记 Heather银行打算在Food Heap超市开设一个自动柜员机(ATM)。Food Heap超市的管理者担心排队等待使用ATM的人流会干扰超市的交通,希望限制排队等待的人数。Heather银行希望对顾客排队等待的时间进行估测。要编写一个程序来模拟这种情况,让超市的管理者可以了解 ATM可能造成的影响。
《C++primer》读书笔记
被业界奉为百科全书式的C++著作C++primer的读书笔记,与他人交流住进学习!
c++primerplus最全课后习题答案
c++primerplus最全课后习题答案.


