数据结构是指计算机组织和存储数据的方式,不同的数据结构的特点影响着数据相关操作的效率。
线性数据结构是指元素之间的关系是一对一的。线性数据结构有栈,队列,双队列,数组,链表,串。
一、数组
数组是一种典型的顺序存储线性结构并且大小固定,其中元素都具有相同类型,数组在内存中是以一种连续的空间进行存储的,也就是说数组中的元素在内存空间中是两两相邻的,所以已知第一个元素的位置,其他元素的位置都可以通过位序推算出来,也就是数组索引角标的由来。
数组的结构特点及对应操作效率:
插入操作:由于数组的内存位置固定,插入数据需要移动数据,除非是在数组末端最快,插在数组始端最慢。平局需要移动半数的元素,时间复杂度位O(n)。
删除操作:与插入操作一样,时间复杂度均为O(n)。
查询操作:由于有数组角标的出现,可以很快通过角标直接查询元素,查询操作的时间复杂度O(1)。
修改操作:与查询操作一样,时间复杂度均为O(1)。
二、链表
链表:是在物理结构上不连续,但是逻辑结构上连续的数据结构,相对实现复杂,链表中的元素不单单储存了数据,也储存了下一个元素的物理地址,所以这就不要求元素存储在连续的物理位置上,也就不需要固定链表的大小,可以动态扩展规模。
链表的结构特点及对应操作效率