在数据存储中有多种数据存储结构,其中线性存储结构就是有限个相同数据类型的数据元素按照有序的顺序排列成的数据结构。
线性表元素之间存在着序偶关系关系,即除了第一个元素外每个元素都有一个前去元素,出最后一个元素之外每个元素都有一个后续元素,而且在其中的元素都有序列号,在大家可以通过序列号对元素进行查找,也可以通过序列号对元素进行插入修改等等。
他到线性结构的序号大家一般都会想到数组,可是线性白和数组是完全不一样的,所以大家一定不要把数组和线性结构混为谈,线性表是一种抽象概念而数组就是存储数据的具体实现,所以数组和线性结构是完全不同的概念,简而言之,线性表就是一种结构,他就像一个骨骼,具体实现需要其他的物理形式,比如包数组中的数据一线性表的形式存储。在现行表中相邻的不一定存储在相邻的内存空间中。如果要是根据下标要把数据存储在内存中只能利用数组实现,因为数组是是根据下标将元素映射到内存相应的位置。
线性表数据类型中包括的方法:
getSize()
不用输入参数只是获取线性表的大小,即数据元素的个数。
isEmpty()
判断线性表是否为空
Contains(e)
判断线性表是否存在数据元素e
indexOf(e)
获取数据元素e在线性表中的序号,如果元素不存在则返回-1;
Insert(i,e)
将数据元素插入到序号为i的位置如果数据越界的话会报错
InsertAfter(i,e)
将数据元素插入到序列号为i的后面。
Remove(i)
删除线性表序列号位i的元素,并返回若i越界,报错
Remove(e)
输入参数为数据元素,删除第一个与数据元素e相同的相同元素
Replace(i,e)
将序列号位i的位置的数据元素替换为e若是越界就会报错。
Get(i)
获取表中序号为i的数据元素,若是i越界,报错。
在线性表数据之中所有的数据元素都要用object类型进行存储,因为object类型是所有数据类型的的父类,这样一来就可以数据元素就可以存储所有类型的数据元素。但是数据元素,但是数据元素不能只要进行数据大小的比较有的数据有时按照字典数字顺序比较,所以数据元素的比较不单单是equal比较,所以这就要用到数据比较策略,比如说要对乐声数据元素进行比较,所以要用到数据比较策略(Strategy)
Public interface Strategy(){
Public boolean equal(Object obj1,obj2)
Public int compare(Object obj1,obj2)
}