代码实现
package 线性表顺序结构及功能实现;
import java.util.Scanner;
public class List {
public static void main(String args[]) {
int[] a=new int[20];//数组长度
int length=10;//线性表长度(数据个数)
Scanner sc=new Scanner(System.in);
for(int i=0;i<length;i++) {
System.out.println("输入10个数据");
a[i]=sc.nextInt();
}
System.out.println("选择功能");
System.out.println("1-插入数据 2-删除数据 0-退出");
switch(sc.nextInt()) {
case 1:List.insert(a, length);length++;;break;
case 2:List.delete(a, length);length--;break;
case 0:System.exit(0);
}
for(int i=0;i<length;i++) {
System.out.print(a[i]+" ");
}
sc.close();
}
static void insert(int a[],int length) {
int n;
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
System.out.println("输入数据插入位置");
if(n>a.length-1 || n<0) {
System.out.println("输入位置无效");
}
else if(length==a.length) {
System.out.println("数组已满");
}
else if(a.length==0) {
System.out.println("数组长度为0");
}
else if(n<=a.length) {
for(int i=length-2;i>=n-1;i--) {
a[i+1]=a[i];
}
System.out.println("输入插入的值");
a[n-1]=sc.nextInt();
System.out.println("插入成功");
}
}
static void delete(int a[],int length) {
int n;
Scanner sc=new Scanner(System.in);
System.out.println("输入数据删除位置");
n=sc.nextInt();
if(n>a.length-1 || n<0) {
System.out.println("输入位置无效");
}
else if(length==a.length) {
System.out.println("数组已满");
}
else if(a.length==0) {
System.out.println("数组长度为0");
}
else if(n<=a.length) {
for(int i=n-1;i<=length-1;i++) {
a[i]=a[i+1];
}
System.out.println("删除成功");
}
}
}
特点:存储空间固定,访问迅速复杂度为O(1),删除插入时间复杂度为O(n)。