基本线性数据结构包括:线性表,栈和队列。
一、线性表
- 线性表中数据元素是一对一的关系
- 线性表的实现方法分为两种:数组和链表
1.数组实现线性表
数组是线性表的循序存储的实现方式,可以通过对数组的操作实现对线性表的各种操作。数组的主要操作有:值查询(search)、前端插入(push_front)、后端插入(push_back)、节点删除(delete)、下标查找(find)和插入(Insert)。
-
值查询:数组查找操作需要对数组进行遍历,最坏情况的时间复杂度为O(n),其中n为数组大小。在数组L中查找关键字为k的元素,存在则返回关键字为k的元素的下标,不存在则返回-1.
-
前端插入:在数组L的前端插入给定元素,若插入元素数超出数组大小则返回-1,表示插入失败;否则返回0.在数组前端插入元素x,需要把数组中其他元素向后移动一个位置,然后再在数组前端插入这个元素x,时间复杂度为O(n)。
-
后端插入:在数组后端插入元素,只需在线性表的后端添加元素即可,所以时间复杂度为O(1)。
-
节点删除:将下标为x的元素从数组l中删除。在数组中删除元素,需要把该下标指向位置之后的其他元素向前移动一个位置,同时修改数组中元素总数。最坏的时间复杂度为O(n)。
-
下标查找:返回数组L的第x个元素,直接返回对应位置的元素值,时间复杂度为O(1)。<