
【计】 chained linear list
【计】 chained mode
clue; line; string; stringy; thread; tie; verge; wire
【医】 line; line Of occlusion; linea; lineae; lineae poplitea; mito-; nemato-
soleal line; strand; thread
【经】 line
rota; surface; table; watch
【计】 T
【化】 epi-
【医】 chart; meter; sheet; table
【经】 schedule
链式线性表(Chained Linear List)
链式线性表是一种常见的数据结构,通过指针(或引用)将数据元素按线性顺序链接存储。与顺序存储的数组不同,其物理存储位置无需连续,每个元素(称为结点/Node)包含数据域和指向下一结点的指针域,逻辑关系由指针维护。
结构与组成
NULL
)。示例结构(C语言描述):
struct Node {
int data;// 数据域
struct Node *next; // 指针域
};
操作特性
典型类型
特性 | 链式线性表 | 顺序线性表(数组) |
---|---|---|
存储方式 | 非连续内存,指针链接 | 连续内存空间 |
插入/删除效率 | $O(1)$(已知位置) | $O(n)$(需移动元素) |
随机访问 | 不支持(需遍历) | 支持($O(1)$) |
空间开销 | 额外存储指针 | 无额外开销 |
malloc
实现)。教材定义
严蔚敏. 《数据结构(C语言版)》:
"线性表的链式存储结构通过一组任意的存储单元存储数据元素,逻辑上相邻的元素在物理上不必相邻。"
- 来源:清华大学出版社, 1997.
技术百科
(链接:https://www.geeksforgeeks.org/data-structures/linked-list/
)
图示:单向链表逻辑结构
Head → [Data|Next] → [Data|Next] → [Data|NULL]
链式线性表是一种常见的数据结构,通常称为链表。它通过节点之间的指针链接实现元素的线性存储,与顺序线性表(如数组)形成对比。以下是详细解释:
链式线性表由一系列节点组成,每个节点包含两部分:
节点之间通过指针连接,形成链式结构。整个链表通过头指针标识起始位置,最后一个节点的指针通常指向空(NULL
)。
单链表
每个节点仅包含指向下一节点的指针(单向链接)。
示例:节点A → 节点B → 节点C → NULL
双向链表
节点包含指向前驱和后继的指针,支持双向遍历。
示例:NULL ← 节点A ↔ 节点B ↔ 节点C → NULL
循环链表
尾节点指针指向头节点,形成环形结构。
示例:节点A → 节点B → 节点C → 节点A
操作 | 链表(平均) | 顺序表(数组) |
---|---|---|
插入/删除 | $O(1)$~$O(n)$ | $O(n)$ |
随机访问 | $O(n)$ | $O(1)$ |
内存占用 | 较高(需指针) | 较低 |
链式线性表通过指针链接实现灵活的数据存储,弥补了顺序表在动态操作上的不足,但牺牲了随机访问的效率。选择时需根据具体需求权衡空间和时间的复杂度。
齿轮驱动初速度电枢漏磁场二价链节匐行性麻痹梗阻性黄疸工业规模过滤关联性弧络佳节胶原加热管加特曼-科赫反应阶下溢异常局部应变惧内的坎福利普图斯萝卜子素面积图图案漂净结核菌素平板纸人类工程学色谱工作人员砷酸氢锰数字计算机条约的废除脱硫槽未到维古鲁氏征