4.2.1 存储结构 4.3.1 BF算法 4.3.2 KMP算法 4.3.3 BF vs KMP 4.4.1 二维数组 4.4.2 多维数组 4.5.1 特殊矩阵 4.5.2 三元组表 4.5.3 十字链表 4.6.1 广义表
当前串: "DATASTRUCTURE" | 长度: 13 | 点击"播放"查看三种存储结构的内存分配动画

1定长顺序存储

用固定长度数组存储,末尾以特殊字符或长度标记结束

存储密度 = 字符占用 / 总空间 = 100%
缺点: 串长受限,截断风险
内存布局 (MAXSIZE=16)
存储密度
0%

2堆分配存储

动态申请内存,按需分配,用指针和长度管理

存储密度 ≈ 字符占用 / (字符空间+指针+长度) ≈ 高
优点: 长度灵活,无截断
内存布局
指针+长度
head
len=13
存储密度
0%

3块链存储

每个结点存储一个数据块,用指针链接

存储密度 = 数据域 / (数据域+指针域) 取决于块大小
优点: 插入删除方便;缺点: 密度低
内存布局 (块大小=4)
存储密度
0%
📊三种存储结构综合对比
特性定长顺序堆分配块链
空间分配静态动态动态
串长限制固定MAXSIZE仅受内存限制仅受内存限制
存储密度100%高 (>90%)较低 (取决于块大小)
插入/删除需移动元素可能需重新分配块级操作,效率高
适用场景串长已知且固定通用,最常用频繁修改的长串
数据字符
空闲/填充
块内填充
指针/元数据