顺序表的定义
线性表的顺序存储又称顺序表.它是用一组地址连续的存储单元依次存储线性表中的数据元素,从而使逻辑上相邻的两个元素在物理位置上也相邻。
public class InitList<E> {// 定义线性表
int MaxSize = 50;
Object[] data = new Object[MaxSize];
int length = 0;
public Boolean Insert(Object e,int i) {// 定义插入方法
if(i < 1 || i > MaxSize) {
return false;
}// 判断i的范围是否有效
if (length >= MaxSize) {
return false;
}// 当前存储已满,不能插入
for (int j = length;j >= i;j--) {
data[j] = data[j-1];
}// 将第i个元素及之后的元素后移
data[i -1 ] = e;//在位置i处放e
length++;// 线性表长度加1
return true;
}
public Boolean Delete(int i) {// 定义删除方法
if(i < 1 || i > length) {
return false;
}// 判断i的范围是否有效
System.out.println(data[i - 1]);
for(int j = i; j <length ;j++) {
data[j-1] = data[j];
}// 将第i个位置后的元素前移
length--;// 线性表长度减1
return true;
}
public int LocateElem(Object e) {// 按值查找
for(int i = 0; i < length ; i++) {
if(data[i] == e) {
return i+1;
}
}
return 0;
}
public void Printf() {// 输出线性表
System.out.println("打印成功");
for(int i = 0 ; i < length ; i++){
System.out.print(data[i]);
}
System.out.println();
}
}
顺序表的使用
public static void main(String[] args) {
// TODO Auto-generated method stub
InitList<String> SqList = new InitList<>();
SqList.Insert("a",1);
SqList.Printf();
SqList.Delete(1);
SqList.Printf();
if (SqList.LocateElem("a") > 0) {
System.out.println(SqList.LocateElem("a"));
}else {
System.out.println("查找失败");
}
}