ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

线性结构:链表(1)

线性结构:链表(1)

1.链表基础概念

本质:物理上不连续,但是逻辑上连续的线性数据结构

1.如何让两个不连续的内存空间,存在逻辑上的联系:

让每个空间,分成两个存储空间(数据域+指针域)

区域一:存放数据;区域二:存放下一块内存地址空间的地址

链表的重要特性:

1.链表的最后一个节点中的指针域总是存放NULL

2.分类

2.1单向链表和双向链表

单向链表:节点只有一个指针域,指向下一个节点

优点:简单,易理解

缺点:只能从前往后查找数据

双向链表:节点中有一个数据域,但是有两个指针域,一个指针域指向下一个节点;另一个指针域指向上一个节点

优点:节点的查找与增删非常灵活

缺点:实现起来稍微复杂,增加存储负担(多了一个指针域)

2.2循环链表和非循环链表

非循环链表:

单向:指针域总是指向下一个节点,最后一个节点总是指向空,表示结束

单向非循环链表

双向:头节点的prev指向空,最后一个节点的next指向空

双向非循环链表

循环链表:

单向:末尾节点的next总是指向头节点

单向循环链表

双向:末尾节点的next总是指向头节点;头节点的prev总是指向末尾节点

双向循环链表

2.3带头链表和不带头链表

带头链表:头节点中不存放数据,单纯当作链表起始点存在

不带头链表:头节点中也存放数据,并没有固定的节点

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进