java:创建一个顺序表模板
顺序表实现的基本步骤和基本方法
SquenceList< T >(此处T为泛型,可以是类,方法,基本数据类型)
SquenceList(int capacity)//初始化数据长度
用到的方法
1public void clear();空置线性表
2 public boolean isEnpty()判断是否为空线性表
3 public int length()获取元素个数
4 public T get(int i )获取线性表中第i个元素的值
5 public insert (int i,T t)获取第i个元素,在第i个地方插入数据类型为T的t
6 public insert(T t)在顺序表末尾添加一个t
7 public T remove(int i)删除并返回线性表中第i个元素的数据元素
8 public int indexOf (T t)返回线性表中首次出现的指定的数据元素的位序号**
成员变量:
1.prvate T[] eles;(存储元素的数组)
2.private int N:当前线性表的长度
SquenceList类代码
public class SequenceList<T> {
//存储元素的个数
private T[]eles;
private int N=0;//当前线性表的长度
public SequenceList(int capacity) {
//初始化数据
//Object可以存储任意类型的数组
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;//
}
public void insert(int i,T t){
//先把i以及i后面的元素全部向后移动一位
//再把t索引处的元素放到i索引处,倒序遍历
for(int index=N-1;index>i;index--){
eles[index]=eles[index-1];
}
eles[i]=t;
}
public T remove(int i) {
//记录删除的元素
T current=eles[i];
//索引处的值依次向前移动1位即可
for(int index=i;i<N;i++){
eles[i]=eles[i+1];
//删减完成以后,元素的个数减1
N--;
}
return current;
}
//查找数据,比较是否相同,如果相同的话,返回下标,不相同则返回-1
public int indexOf(T t){
for(int i=0;i<N;i++){
if(eles[i].equals(t)){
return i;
}
}
return -1;
}
}
创建一个SquenceListTest类进行代码测试
public class SequenceListTest {
public static void main(String[] args) {
//创建顺序表对象sl
SequenceList<String> sl =new SequenceList<>(10);//初始化容量10
//输入
sl.insert("姚明");
sl.insert("乔丹");
sl.insert("科比");
//获取
String getResult= sl.get(1);
System.out.println("获取的结果:"+getResult);
//删除
String removeResult= sl.remove(0);
System.out.println("删除的结果为:"+removeResult);
//清空线性表中的元素个数
sl.clear();
System.out.println("清空后的线性表中的元素个数为"+sl.length());
}
}