线性表是一种最常见、最简单,也是一种最基本的数据结构,它是学习其他数据结构的基础。线性表有两种存储结构:顺序表和链表。下面我主要介绍顺序表。
所谓顺序表,就是顺序存储的线性表。顺序存储是用一组地址连续的存储单元一次存放线性表中各个数据元素的存储结构。顺序表基本使用数组来实现。
顺序表的特点:
- 在线性表中逻辑上相邻的数据元素,在物理存储位置上也是相邻的
- 存储密度高,但需要预先分配“足够应用”的存储单位,可能会造成存储空间的浪费
- 便于随机存放
- 不利于插入和删除操作,因为在顺序表上进行插入和删除操作会引起大量数据元素的移动
下面是线性表接口的描述:
package sequenceTable;
public interface IList {
public void clear();
public boolean isEmpty();
public int length();
public Object get(int i) throws Exception;
public void insert(int i,Object x) throws Exception;
public void remove(int i) throws Exception;
public int indexOf(Object x);
public void diaplay();
}
下面是顺序表类的描述:
package sequenceTable;
public class SqList implements IList {
private Object[] listElem;
private int curLen;
public SqList(int maxSize) {
curLen=0;
listElem=new Object[maxSize];
}
@Override
//将一个已经存在的线性表置成空表
public void clear() {