2.2.1 顺序表 P18
package hicc.ds.c02_linear;
import java.util.Arrays;
public class SeqList {
private int maxSize = 10; //最大存储长度
private Object[] data = new Object[maxSize]; //顺序表的存储空间
private int last; //最后元素的位置
public SeqList() { //初始化
last = -1;
}
public int insert(int i, Object x) { //插入操作
if (last == maxSize) {
return -1;
}
if (i < 0 || i > last+1) {
return 0;
}
for (int j = last; j >= i; j--) {
data[j+1] = data[j];
}
data[i] = x;
last ++;
return 1;
}
public Object delete(int i) { // 删除操作
if (last == -1) {
return -1;
}
if (i < 0 || i > last) {
return 0;
}
Object del_object = data[i];
for (int j = i; j < last; j++) {
data[j] = data[j+1];
}
last --;
return del_object;
}
public Object location(Object x) { //按值查找
if (last == -1) {
return -1;
}
int i = 0;
while (i <= last && !data[i].equals(x)) {
i++;
}
if (i > last) {
return -1;
}else {
return i;
}
}
@Override
public String toString() {
return "SeqList [size=" + (last+1) + ", data=" + Arrays.toString(data) + "]";
}
public static void main(String[] args) {
SeqList sl = new SeqList();
sl.insert(0, 1);
System.out.println(sl);
sl.insert(1, 2);
System.out.println(sl);
sl.insert(1, 3);
System.out.println(sl);
sl.delete(1);
System.out.println(sl);
sl.insert(2, 5);
System.out.println(sl);
System.out.println(sl.location(2));
}
}