数据结构
是研讨数据的逻辑结构和存储结构,以及它们之间的相互关系并对与这种结构定义相应的运算,设计出相应的算法,确保经过这些运算后所得到的新结构是原来的结构类型。
线性表的存储结构
定长的顺序存储结构——顺序表
简称顺序表,程序中通过创建数组来建立这种存储结构,其主要特点是为线性表分配一块连续的存储空间,线性表中的数据元素顺序的存储在这些地址连续空间中,以物理地址相邻来表示线性表中数据元素之间的逻辑关系,其不足是限制了线性表的长度变化。
- 顺序表插入算法的时间复杂度是O(n)
- 顺序表删除算法的时间复杂度是O(n)
- 取数据元素算法的时间复杂度是O(1)
- 顺序表查找算法的时间复杂度是O(n)
- 顺序表遍历算法的时间复杂度是O(n)
1,顺序表的优缺点
优点
- 结构简单,便于理解
- 方便随机访问表中的每个元素
- 不需要再为表示节点间的逻辑关系而额外增加存储空间
缺点:
- 顺序表的存储空间不易扩充
- 顺序表易造成存储空间利用率低。由于顺序表需要一组连续的存储单元,对于长度变化的线性表则需要事先估计并申请足够大的存储空间,小了会发生溢出,大了会使存储空间得不到充分利用。
- 顺序表的插入和删除运算不方便。在顺序表中每次插入和删除运算都要移动一一半的数据元素,当顺序表的长度n很大时,则其插入和删除算法的效率都很低。
变长的顺序存储结构——链