基本概念
线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。
线性表的基本特征:
- 第一个数据元素没有前驱元素;
- 最后一个数据元素没有后继元素。
- 其余每个数据元素只有一个前驱元素和一个后继元素;
抽象数据类型:
线性表一般包括插入、删除、查找等基本操作。
代码如下:
public interface List<Item> {
//线性表的大小
public int size();
//判断线性表是否为空
public boolean isEmpty();
//添加新元素
public void add(Item item);
//读取指定位置的元素
public Item get(int index) throws Exception;
//插入元素
public void insert(int index,Item item) throws Exception;
//删除第index个元素
public Item delete(int index) throws Exception;
}
线性表的分类:
线性表按物理存储结构的不同可分为顺序表(顺序存储)和链表(链式存储)。
- 顺序表(存储结构连续,数组实现)
- 链表(存储结构上不连续,逻辑上连续)
顺序表
顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。
其插入删除操作如图所示:
代码如下:
/**
* 顺序表
* @author Gain
*
*/
public class SequentialList<Item> implements List<Item>{
private int N;//记录元素个数