链表类里为什么一定要有 head

第 1 步:append 9:cur 从头出发 第 2 步:next 不是空,继续走 第 3 步:走到 next 为空的最后一节 第 4 步:new 一节接在它后面 3 7 5 ∅ head cur 9 ∅ 链表类里必须存一个 head,因

开始练习 →

放三个人之后长度是多少

运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; struct Node {

开始练习 →

第一步节点结构和追加

最终作品第一步:在 LinkList 里实现 append 和 size。放进四个人之后输出这条链有几个人。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第二步接上按名字查

给它加上 find:找到就返回那个节点,找不到返回 nullptr。查「阿泰」,补全后输出找到的名字。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第三步接上删除

加上 remove,删头和删中间都要对,删掉的节点要 delete。删掉「阿岚」(正好是头)之后,输出还剩几个人。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第四步接上反转

加上 reverse,把整条链原地掉头。反转之后输出第一个人的名字。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

交付增删查反转一起验收

这是这条路线的最终作品。把完整的 LinkList(append / size / find / remove / reverse,外加析构时释放全部节点)写出来,然后一次验完五条:放 4 个人之后 size() 是 4;find(&quo

开始练习 →

加上内存检查以后会抓什么

第 1 步:栈上有个指针 p,还没指东西 第 2 步:new 出一块,p 指着它 第 3 步:delete 以后这块还给系统 第 4 步:p 还指着那里:悬垂指针 第 5 步:用完把 p 置成 nullptr 第 6 步:q 又 new 了

开始练习 →

修好反转时弄丢的节点

场景:实验机上 ~/work/list/rev.cpp 读入一串整数建成链表,反转后输出。可它反转完只剩一个数,后面的全丢了。 任务:修好 reverse 里指针改向的顺序,让它输出完整的反转结果(一行,数之间用一个空格隔开)。用 make

开始练习 →

删掉的节点要还回去

场景:~/work/list/drop.cpp 读入一串整数和一个要删的值 x,把所有等于 x 的节点删掉后输出剩下的。输出是对的,可 Makefile 带了内存检查(AddressSanitizer),程序一结束就报内存泄漏。 任务:修好

开始练习 →