题目描述:
请你定义一个线性表,可以对表进行“在某个位置之前插入一个元素”、“删除某个位置的元素”、“清除所有元素”、“获取某个位置的元素”等操作。键盘输入一些命令,可以执行上述操作。本题中,线性表元素为整数,线性表的第一个元素位置为1。线性表的最大长度为1000。
输入:
各个命令以及相关数据,它们对应的格式如下:在某个位置之前插入操作:insert,接下来的一行是插入的组数n,下面是n行数据,每行数据有两个值,分别代表位置与插入的元素值
清除线性表:clear
获取某个位置的元素:getelem,接下来一行是需要获取的元素位置
删除某个位置的元素:delete,接下来一行是被删除的元素位置
当输入的命令为exit时,程序结束
输出:
当输入的命令为getelem时,请输出获取的元素值,当输入的命令是delete时,请输出被删除的那个元素值
注意,所有的元素均占一行
输入样例:
?insert
2
1 1
2 2
delete
1
clear
insert
2
1 3
2 4
getelem
2
exit
输出样例:
1
4
代码:
import java.util.Scanner;
public class no33 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a[] = new int[1024];
int c[] = new int[1024];
int len = 0;
while (true){
String s = in.next();
if(s.equals("getelem")){
int b = in.nextInt();
System.out.println(a[b]);
}
if(s.equals("insert")){
int b = in.nextInt();
for(int i = 0;i < b;i ++){
int x = in.nextInt();
int y = in.nextInt();
for(int j = len;j >= x;j --){
a[j+1] = a[j];
}
len ++;
a[x] = y;
}
}
if(s.equals("clear")){
a = c;
len = 0;
}
if(s.equals("delete")){
int b = in.nextInt();
System.out.println(a[b]);
for(int j = b;j < len;j ++){
a[j] = a[j+1];
}
len --;
}
if(s.equals("exit")){
break;
}
}
}
}
?