前言
线性表是最基本、最简单、也是最常用的一种数据结构。一个线性表是n个具有相同特性的数据元素的有限序列列。线性表有两种类型顺序表和链表。
提示:以下是本篇文章正文内容,下面案例可供参考
一、顺序表是什么?
是在计算机内存中以数组形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元,依次存储线性表中的各个元素,使得线性表中在逻辑结构上相邻数据元素存储在相邻的而物理存储单元中,即通过数据元素的物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。
二、顺序表的使用
1.创建一个顺序表的实现类Sequencelist
代码如下(示例):
public class Sequencelist<T> {
// 声明定义两个成员变量 数组和元素个数
private T[] eles;
private int N;
//定义一个构造方法实现数组 为Sequencelist创建对象对类进行
public Sequencelist(int capacity) {
// 初始化数组 让类里的eles等于new出来又强转为T类型的Object类型的数组
// 其中capacity是传入的数组的容量 就是给定数组eles的元素容量/个数
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];
}
//像线性表中添加元素, 像顺序表的最后添加一位元素
public void insert(T t) {
eles[N + 1] = t;
}
//在顺序表的第i个元素处插入元素
public void insert(int i, T t) {
// 先把i索引处的元素及其后面的元素先后
// 使用for循环将上述元素达到向后移一位的效果
for (int index = N; index > i; index--) {
eles[index] = eles[index - 1];
}
// 再把t元素放到i索引处即可
eles[i] = t;
// 记录此时顺序表中的元素个数
N++;
}
//删除指定位置i处的元素,并返回删除的元素
public T remove(int i) {
// 记录索引i处的值
T current = eles[i];
// 索引i后面的元素全部向前移一位即可 使用for循环
for (int index = i; index < N - 1; index++) {
eles[index] = eles[index + 1];
}
// 记录此时顺序表中的元素个数
N--;
return current;
}
//获取元素在顺序表中首次出现的序列号/索引 使用for循环便利顺序表嵌套if语句判断
//并且返回该元素的索引
public int indexOf(T t) {
for (int i = 0; i < N; i++) {
if (eles[i].equals(t)) {
return i;
}
}
return -1;
}
}
2.读入数据
代码如下(示例):
public class SequencelistTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Sequencelist<String> sl=new Sequencelist(10);
//测试插入
sl.insert("姚明");
sl.insert("张三");
sl.insert("里斯");
sl.insert(1, "宙斯");
//测试删除
sl.remove(2);
//测试获取指定位置的元素
sl.get(1);
//判断元素是否在顺序表中并获得他的索引
int mun=sl.indexOf("宙斯");
System.out.println("元素"+mun);
//清除所有元素
sl.clear();
//判断栓需表是否为空
boolean result=sl.isEmpty();
System.out.println("顺序表为:"+result);
}
}
该处使用的test测试类用于测试实现类是否能够正确执行定义的有关功能
总结
顺序表其实就是线性表中的一种类型,用于存储有限序列的数据组,并且顺序表单的容量自定义capacity。但是早实际操作过程中顺序表的容量往往由于执行增删改查操作后,出现容量不足又或者是容量过于臃肿,因此会使用迭代器来控制。