package book;
import java.util.Scanner;
public class DemoList {
final int DefaultSize = 10; //定义默认顺序表长度
int MaxSize; //定义顺序表最大长度
int size; //定义顺序表当前长度
Object[] ListArry; //定义顺序表对象数组
public DemoList () { //类的默认构造方法
ListInit(DefaultSize);
}
public DemoList (int InputSize) { //有参数时类的构造方法
ListInit(InputSize);
}
private void ListInit (int ListSize) { //顺序表初始化
MaxSize = ListSize;
this.size = 0;
ListArry = new Object[ListSize];
}
public void ListInsert (int index, Object obj) { //顺序表插入函数
if(size == MaxSize)
System.out.println("List is full!");
if(index < 0 || index >= MaxSize)
System.out.println("Location is wrong!");
for(int i = size; i > index-1; i--) {
ListArry[i] = ListArry[i-1];
}
ListArry[index-1] = obj;
size++;
}
public Object ListLoc (int index) { //查找特定位置的值
if(index < 0 || index > size)
System.out.println("Loc is wrong!");
return ListArry[index-1];
}
public void ListDelete (int index) { //删除指定位置的值
if(index < 0 || index > size)
System.out.println("Loc is wrong!");
for(int i = index-1; i < size-1; i++)
ListArry[i] = ListArry[i+1];
size--;
}
public void ListPrint () { //打印线性表中的元素
for(int i = 0; i < size; i++) {
System.out.println("第" + i + "个数是:" + ListArry[i]);
}
}
public static void main (String[] args) {
Scanner scan = new Scanner(System.in);
DemoList dl = new DemoList(20);
int NumNode, num;
System.out.print("Please Enter Num Of Node:");
NumNode = scan.nextInt();
for(int i = 0; i < NumNode; i++) { //输入顺序表元素构建顺序表
System.out.print("Please Enter num:");
num = scan.nextInt();
dl.ListInsert(i+1, num);
}
dl.ListPrint();
int NumDelete; //删除顺序表中的特定位置的元素
System.out.print("Please Enter a num for delete:");
NumDelete = scan.nextInt();
dl.ListDelete(NumDelete);
dl.ListPrint();
System.out.print("Please Enter a num for loc:"); //查询顺序表中的特定位置的元素
int loc = scan.nextInt();
System.out.println(dl.ListLoc(loc));
}
}