1定长顺序存储
用固定长度数组存储,末尾以特殊字符或长度标记结束
存储密度 = 字符占用 / 总空间 = 100%
缺点: 串长受限,截断风险
缺点: 串长受限,截断风险
内存布局 (MAXSIZE=16)
存储密度
0%
2堆分配存储
动态申请内存,按需分配,用指针和长度管理
存储密度 ≈ 字符占用 / (字符空间+指针+长度) ≈ 高
优点: 长度灵活,无截断
优点: 长度灵活,无截断
内存布局
指针+长度
head
len=13
存储密度
0%
3块链存储
每个结点存储一个数据块,用指针链接
存储密度 = 数据域 / (数据域+指针域) 取决于块大小
优点: 插入删除方便;缺点: 密度低
优点: 插入删除方便;缺点: 密度低
内存布局 (块大小=4)
存储密度
0%
📊三种存储结构综合对比
| 特性 | 定长顺序 | 堆分配 | 块链 |
|---|---|---|---|
| 空间分配 | 静态 | 动态 | 动态 |
| 串长限制 | 固定MAXSIZE | 仅受内存限制 | 仅受内存限制 |
| 存储密度 | 100% | 高 (>90%) | 较低 (取决于块大小) |
| 插入/删除 | 需移动元素 | 可能需重新分配 | 块级操作,效率高 |
| 适用场景 | 串长已知且固定 | 通用,最常用 | 频繁修改的长串 |
数据字符
空闲/填充
块内填充
指针/元数据