顺序表的操作
import java.util.Arrays;
public class SeqList { //设置一个长度为10,有效元素个数为0的顺序表
private int[] data = new int[10]; //长度
private int size = 0; //有效元素个数
public void display(){ //打印顺序表
System.out.print("[");
for (int i = 0; i < size; i++) {
System.out.print(data[i]);
if(i != size - 1){
System.out.print(", ");
}
}
System.out.println("]");
}
public void realloc(){ //扩容
int[] arry = new int[this.data.length * 2];
for (int i = 0; i < this.data.length; i++) {
arry[i] = data[i];
}
this.data = arry;
}
public void add(int pos, int elem){ //增
if (pos < 0 ||pos > size){
return;
}
if (this.size >= this.data.length){
realloc();
}
if(pos == size){
this.data[pos] = elem;
this.size++;
return;
}
for (int i = this.size; i > pos ; i--) {
this.data[i] = this.data[i - 1];
}
this.data[pos] = elem;
this.size++;
}
public boolean contain(int toFind){ //是否包含某元素
for (int i = 0; i < this.size; i++) {
if(data[i] == toFind){
return true;
}
}
return false;
}
public int search(int toFind){ //查找出某元素位置
for (int i = 0; i < this.size; i++) {
if (data[i] == toFind){
return i;
}
}
return -1;
}
public int getPos(int pos){ //某位置上的元素
return this.data[pos];
}
public void setPos(int pos, int elem){ //更改某位置上的元素
this.data[pos] = elem;
}
public void remove(int toRemove){ //删除某元素
int a = search(toRemove);
if(a == -1){
return;
}
if (a == this.size - 1){
this.size--;
return;
}
for (int i = a; i < this.size - 1; i++){
data[i] = data[i + 1];
}
this.size--;
}
public int size(){ //顺序表长度
return this.size;
}
public void clear(){ //清除顺序表
this.size = 0;
this.data = new int[10];
}
}
顺序表的测试
public class testSeqList {
public static void main(String[] args) {
testremove();
}
private static void testremove(){
SeqList seqlist = new SeqList();
seqlist.add(0,1);
seqlist.add(1,2);
seqlist.add(2,3);
seqlist.add(3,4);
seqlist.add(4,5);
seqlist.remove(2);
seqlist.display();
}
}
先添加元素,再删除
结果为:[1, 3, 4, 5]