2.1.2线性表抽象数据类型数据集合线性表的数据元素集合可以表示为序列ao,ai,a2…,an-1,每个数据元素的数据类型可以是任意的类类型。操作集合在线性表的第i个数据元素前插入数据元素obj。(1)求当前数据元素个数(2)插入数据元素insert(i,obi)(3)丹删除数据元素delete(i)(4)1取数据元素getData(i)删除线性表的第i个数据元素。(5)线性表是否空isEmpty)
数据集合 线性表的数据元素集合可以表示为序列a0 , a1 , a2 ,., an-1,每个数据元素的数据类型可以是任意的类类型。 操作集合 (1)求当前数据元素个数getSize( ) (2)插入数据元素insert(i, obj) (3)删除数据元素delete(i) (4)取数据元素getData(i) (5)线性表是否空isEmpty( ) 2.1.2 线性表抽象数据类型 在线性表的第i个数据元素 前插入数据元素obj。 删除线性表的第i个数据 元素
线性表抽象数据类型的接口定义如下:interface List3void insert(int i, Object obi);//插入//删除Object delete(int i);//取数据元素Object getData(int i);//求元素个数int getSize();bool isEmpty();
线性表抽象数据类型的接口定义如下: interface List { void insert(int i, Object obj);//插入 Object delete(int i); //删除 Object getData(int i); //取数据元素 int getSize(); //求元素个数 bool isEmpty(); }
2.2顺序表2.2.1 顺序表用一组地址连续的存储单元依次存储线性表的各个数据元素。即采用顺序存储结构的线性表。它通常采用数组实现数据元素的存储。注意:在C#中数组的下标是从开始,即:listArray[n]的有效范围是从listArray[0] ~ listArray[n-1]
2.2.1 顺序表 2.2 顺序表 用一组地址连续的存储单元依次存储线性表的 各个数据元素。即采用顺序存储结构的线性表。 它通常采用数组实现数据元素的存储。 注意:在C#中数组的下标是从0开始, 即:listArray[n]的有效范围是从 listArray[0]~listArray[n-1]
线性表顺序存储特点:(1)逻辑上相邻的数据元素,其物理上也相邻;(2)若已知表中首元素在存储器中的位置,则其他元素存放位置亦可求出(利用数组的下标)。设首元素a.的存放地址为LOC(ao)(称为首地址)设每个数据元素占用L个存储空间,则表中任一数据元素的存放地址为:LOC(ai+1)= LOC(a;) + LLOC( a; ) =LOC(ao)+L*i对上述公式的解释如图所示
(1) 逻辑上相邻的数据元素,其物理上也相邻; (2) 若已知表中首元素在存储器中的位置,则其他元素存放位 置亦可求出(利用数组的下标)。 设首元素a0的存放地址为LOC(a0 )(称为首地址), 设每个数据元素占用L个存储空间, 则表中任一数据元素的存放地址为: LOC ( ai+1 ) = LOC( ai ) + L LOC ( ai ) = LOC( a0 ) + L *i 对上述公式的解释如图所示 线性表顺序存储特点: