线性表
两种物理存储结构,顺序存储和链式存储
MyList接口
定义MyList接口,后面的类继承这个接口
public interface myList {
/**
* 清空List中的元素
*/
public void clear();
/**
* 判断List是否为空
* @return true表示不为空,false表示为空
*/
public boolean isEmpty();
/**
* 返回List的长度
* @return List的长度
*/
public int length();
/**
* 返回List指定位置的元素
* @param i 位置索引
* @return 对应位置处的元素
* @throws Exception
*/
public Object get(int i) throws Exception;
/**
* 把元素插入到List中
* @param i 插入索引
* @param x 待插入元素
* @throws Exception
*/
public void insert(int i, Object x) throws Exception;
/**
* 删除List对应位置上的元素
* @param i 删除索引
* @throws Exception
*/
public void remove(int i) throws Exception;
/**
* 查询元素的索引
* @param x 待查询的元素
* @return
*/
public int indexOf(Object x);
/**
* 遍历List
*/
public void display();
}
顺序存储结构sqList
若采用顺序存储结构sqList
顺序存储结构:用一段地址连续的存储单元依次存储线性表的数据元素
可以使用一维数组来实现
数组的长度是存放线性表的存储空间的长度,存储分配后这个量一般是不变的
线性表的长度是线性表中数据元素的个数,随着插入和删除的进行,是不断改变的
线性表的长度小于等于数组的长度
可以计算出线性表中任意元素的地址
/*
定义:
线性表:零个或多个数据元素的有限序列
序列:元素之间是有顺序的
有限:区分不是无限的
特点:
在线性表中逻辑上相邻的数据元素,在物理存储位置上也是相邻的。
存储密度高,但要预先分配,可能会造成空间的浪费。
便于随机存取
不便于插入和删除操作,会引起大量的数据元素的移动
*/
pub