线性表:
一种逻辑结构,相同数据类型的n个数据元素的有限序列,除第一个元素外,每个元素有且仅有一个直接前驱,除最后一个元素外,每个元素有且仅有一个直接后继。
线性表的特点:
(1)元素个数有限 (2)逻辑上元素有先后次序
(3)数据类型相同 (4)仅讨论元素间的逻辑关系
注:线性表是逻辑结构,顺序表和链表是存储结构。
线性表 |
||
存储类别 |
顺序存储结构 |
单链表 |
存储分配方式 |
用一段连续的存储单元依次存储线性表的数据元素 |
采用链式存储结构,用一组任意的存储单元存放线性表的元素 |
时间性能 |
查找O(1)、插入和删除O(n) |
查找O(n)、插入和删除O(1) |
空间性能 |
需要预分配存储空间,分大了浪费,小了容易发生上溢 |
不需要分配存储空间,只要有就可以分配,元素个数不受限制 |
- 若线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序存储结构。若需要频繁插入和删除时,宜采用单链表结构。
- 当线性表中的元素个数变化较大或者根本不知道有多大时,最好用单链表结构,这样可以不需要考虑存储空间的大小问题。而如果事先知道线性表的大致长度,用顺序存储结构效率会高很多。