1
0
mirror of https://github.com/142vip/408CSFamily.git synced 2026-04-08 04:59:17 +08:00
Files
408CSFamily/docs/DataStructure/linear_table/8.selection_of_storage_structure.md
mmdapl 42117a0dd9 init
2022-04-08 00:10:38 +08:00

1.3 KiB
Raw Blame History

存储结构的选取

基于存储的考虑

  • 对线性表的长度和存储规模难以估计时,不宜采用顺序表存储
  • 链表不用事先估计存储规模,但存储密度较低
  • 链式存储结构的存储密度小于1不要求连续的存储空间

基于运算的考虑

  • 顺序表支持随机存取按序号查找顺序表的时间复杂度为O(1)
  • 链表不支持随机存取按序号查找链表的时间复杂度为O(n);
  • 顺序表的插入、删除操作,平均需要移动表中一半的元素,当表的数据量较大时,这种情况需要重点考虑的。
  • 链表的插入、删除操作,也是需要找插入位置(前驱结点、后继结点),主要的操作还是比较操作,相对较好;

基于环境的考虑

  • 顺序表容易实现,任何高级语言中都有数组类型;
  • 链表操作是基于指针的,指针移动,相对复杂;

综上比较

  • 通常比较稳定的线性表选择顺序存储;
  • 频繁进行插入、删除操作的线性表,应该选择链式存储,动态性较强