关于C++ Primer Plus的链表的解析

本文详细解析了C++ Primer Plus书中关于链表操作的enqueue()函数,通过实例阐述了如何在链表末尾添加元素的过程,包括节点的创建、链接以及front和rear指针的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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。

4000存储了什么呢?第一个item和一个NULL指针。


第二次调用enqueue()函数时,Node* add = new Node又创建了一个指向Node结构的指针。

比如此时add的地址是420

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值