順序表的定義
線性表的順序存儲(chǔ)又稱順序表.它是用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線性表中的數(shù)據(jù)元素,從而使邏輯上相鄰的兩個(gè)元素在物理位置上也相鄰。
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;
}// 當(dāng)前存儲(chǔ)已滿,不能插入
for (int j = length;j >= i;j--) {
data[j] = data[j-1];
}// 將第i個(gè)元素及之后的元素后移
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個(gè)位置后的元素前移
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("查找失敗");
}
}