链表接口、实现分析与帧管理应用
1. 链表基础特性
链表在概念上可看作一系列连续元素,但实际上,由于元素是动态分配的(在C语言中使用 malloc ),它们通常分散在内存中。元素之间的指针是确保所有元素可访问的唯一方式。若不小心丢失一个链接,从该点起后续的所有元素都将无法访问,因此“链条的强度取决于最薄弱的环节”这一说法对链表尤为贴切。当需要访问前一个元素时,通常要从头开始遍历(不过有时可提前保存指针),若此弱点影响较大,可使用双向链表或循环链表。
2. 链表接口函数
2.1 初始化链表 - list_init
void list_init(List *list, void (*destroy)(void *data));
- 返回值 :无
- 描述 :初始化指定的链表。在使用其他操作之前,必须先调用此操作。
destroy参数用于在调用list_destroy时释放动态分配的数据。若链表包含使用malloc动态分配的数据,destroy应设为free;对于包含多个动态分配成员的结构化数据,destroy应设为用户自定义函数;若链表数据无需释放,destroy应设为 <
超级会员免费看
订阅专栏 解锁全文
5169

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



