一、定义等等
1、线性表(List):零个或多个数据元素的有限序列。
数据元素可以由若干个数据项组成。
2、线性表的抽象数据类型
定义:线性表数据对象均为相同类型。其中,除首元素外,其他元素均只有一个直接前驱元素,除尾元素外,其他元素均只有一个直接后继元素。数据元素之间是一一对应关系。
常用方法:
在尾部添加一个元素:Add()
在尾部添加一个集合:AddRange()
在指定位置,指定长度下反转该段元素:Reverse()
在指定位置插入一个元素:Insert()
在指定位置插入一个集合:InsertRange()
在指定位置移除一个元素:Remove()
在指定位置,指定长度下移除该段元素:RemoveRange()
···
3、线性表长度<=数组的长度
线性表长度:对象的个数
数组的长度:申请的储存空间的大小。
二、线性表的顺序储存
1、其时间复杂度:对于插入以及删除操作,其时间复杂度为0(n)。由此可以知道,面对插入删除操作,线性表的长度越小越好。
2、线性表顺序储存的优缺点
三、线性表链式储存
1、结点
组成:该数据元素的本身信息(数据域)+下一个元素的地址信息(指针域)。
那么可以知道第一个元素的地址信息没有使用到,同时最后一个结点没有指针域,所以定义了头结点(非必要)和将最后一个结点的指针域设为空null(必要)。
2、头结点
定义:数据域内容为空(可附加线性表长度等信息)+第一个元素的指针域(头指针)
由上可知:头指针是必要元素,头结点非必要元素。