线性表
线性表是最基本,最简单,也是最常用的一种数据结构。一个线性表是n个具有相同特性的数据元素的优先序列
前驱元素:
若A元素在B元素的前面,则称A为B的前驱元素
后继元素:
若B元素在A元素的后面,则称B为A元素的后继元素
特征
数据元素之间有一对一的逻辑关系
- 第一个数据元素没有前驱,称为头结点
- 最后一个元素没有后继,这个元素称为尾节点
- 除了第一个和最后一个数据元素外,其他数据元素有且仅有一个前驱和后继
分类
线性表中的数据存储方式可以是顺序存储,也可以是链式存储,按照数据存储方式不同,可以把线性表分为顺序表和链表
顺序表
顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元,依次存储线性表中的各个元素,使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反应数据元素之间逻辑上的相邻关系
API实现
public class SequenceList<T> implements Iterable{
//存储元素的数组
private T[] eles;
//记录当前顺序表中的元素个数
private int N;
//构造方法
public SequenceList(int capacity){
//初始化数组
this.eles=(T[])new Object[capacity];
//初始化长度
this.N=0;
}
//将一个线性表置为空表
public void clear(){
this.N=0;
}
//判断当前线性表是否为空表
public boolean isEmpty(){
return N==0;
}
//获取线性表的长度
public int length(){
return N;
}
//获取指定位置的元素
public T get(int i){
return eles[i];
}
//向线型表中添加元素t
public void insert(T t){
eles[N++]=t;
}
//在i元素处插入元素t