在最后一个有效元素后插入一个数据,
当然,在此之前需要判断顺序表有没有满,如果满了需要先扩容再插入。
判断顺序表满没满很简单,就看他的有效元素个数是否与数组长度相等,如果相等就代表顺序表满了。
顺序表的“指针”是指向最后一个元素的后一个空间
public class SeqList {
public int[] elem;
public int size;
}
public class SeqList {
public int[] elem;//数据域引用
public int size;//有效元素个数
//初始化顺序表
public void initSeqList(){
this.elem = new int[10];
}
//每次使用新的顺序表还需要自己构造对象调用初始化方法,太麻烦了,我们让顺序表在执行构造方法阶段就完成顺序表的初始化。
public SeqList() {
this.initSeqList();
}
//判断顺序表是否满
public boolean isFull() {
return this.size == this.elem.length;
}
//2.3顺序插入元素
public void seqAdd(int value) {
if (this.elem == null) {
this.initSeqList();
}
if (this.isFull()) {
this.elem = Arrays.copyOf(this.elem, 2 * this.elem.length);//扩容
}
this.elem[this.size] = value;
this.size++;
}
//2.4指定位置插入数据
// 在 pos 位置新增元素
public void add(int pos, int data) {
if (this.elem == null) {
this.initSeqList();
}
if (pos < 0 || pos > this.size) {
System.out.println("插入位置非法!");
return;
}
if (isFull()) {
this.elem = Arrays.copyOf(this.elem, 2 * this.elem.length);
}
for (int i = size - 1; i >= pos; i--) {
this.elem[i+1] = this.elem[i];
}
this.elem[pos] = data;
this.size++;
}
}