bool Queue::enqueue(const Item & item)
{
if (isfull())
return false;
Node * add = new Node;
add->item = item;
add->next = NULL;
items++;
if (front == NULL)
front = add;
else
rear->next = add;
rear = add;
return true;
}
这个在链表中添加元素的函数连续看了几天都没理解(不夸张),理解的以后发现其实很简单,是自己的理解跑偏了……故在此记录一下如何理解C++ Primer Plus的链表,尤其是这个enqueue()函数。
Queue line(10);
创建了一个最多可以包含10个元素的链表,此时链表中一个元素都没有,并且由于构造函数,front = rear = NULL。
当第一次调用enqueue()函数时,Node* add = new Node创建了一个指向Node结构的指针。
比如此时add的地址是4000,然后front = rear = add = 4000。
<
本文详细解析了C++ Primer Plus书中关于链表操作的enqueue()函数,通过实例阐述了如何在链表末尾添加元素的过程,包括节点的创建、链接以及front和rear指针的变化。


被折叠的 条评论
为什么被折叠?



