介绍
首先,用游标实现的链表还是链表,就像无论是链表还是数组都是对表这一抽象概念的具体实现。
在这里,多级抽象的概念在我们设计工程代码和封装代码时非常有用。
接着,链表有两个重要的特点:
- 数据存储在结构体总,每一个结构体包含有数据以及指向下一个结构体的指针。
- 每一个结构体通过malloc而从系统全局内存得到,并通过调用free而被释放。
具体实现
链表的游标实现.cpp1. 一些问题
代码实现的并不严谨,仅仅能在恰当的情况完成功能。2. 思考
insert 函数
比如书中的 insert 函数,参数有L链表头,X插入的数据,P插入的位置,而L是未被使用的,这并不符合我们通过L表头来找到我们将要插入的位置的习惯,而是直接给出了“内存地址”P。所以我们可以根据实际需求设计更加方便的函数功能封装。应当注意到
代码中以下标0作为表头的链表是未被使用的空间(内存已经分配,但是链表未使用)。叫做freelist
free和 alloc 作为两个相反的操作,其对结构体单元操作的顺序类似于栈,请思考过程。
上一篇:第三章 栈的链表实现
下一篇:第三章 桶排序和基数排序