数据结构的四种逻辑结构: 集合, 线性, 树形, 网状
linearity = ( D , R )
D = { a1, a2, a3, a4}
R = { <a1,a2> , <a2,a3> , <a3,a4>}
a1元素称为第一个元素, 其他的元素都有一个直接前驱, a4元素称为最后一个元素, 其他的元素都有一个直接后继
生活中的线性结构: 排队
ADT List {
数据对象: D = {ai 属于某个数据类型, i=0,1,2,3...}
D = { a0, a1, a2, a3, a4... an}, 所有的元素都是同一个数据类型
数据关系: R= { <ai, ai+1>}
数据操作:
getSize(): 返回线性表中元素的个数
isEmpty(): 判断线性表是否为空, 线性为空返回true,否则返回false
insert( i , e ) : 在线性表的i索引值位置插入元素e, 如果索引值i越界报错
contains(e): 在线性表中判断是否存在元素e,存在返回true,
indexOf(e) : 返回元素e在线性表中的索引值, 如果不存在元素e返回-1
remove( e) : 删除线性表中第一个与e相同的元素, 删除成功返回删除的元素
remove( i ) : 删除线性表中指定索引值的元素,返回删除的元素, 如果索引值i越界报错
replace( i , e): 把纯性表中索引值 为i 的元素替换为元素e, 如果索引值i越界报错
get( i): 返回线性表中索引值为i的元素, 如果索引值i越界报错
insertBefore( p , e): 在线性表中元素p的前面插入元素e
insertAfter( p, e) : 在线性表中元素p的后面插入元素e
}List;
抽象数据类型可以对应的一个Java类, 数据对象与元素之间的关系 可以通过成员变量来存储和表示;数据操作可以通过一组方法来实现