SeqList.java
public class SeqList {
//初始空间为5
private static final int LIST_SIZE = 5;
//数组data用来存放数据
private int[] data;
//当前表长,实际存储元素的个数
private int length;
//当前表长,实际存储元素的个数
private int maxSize;
//无参构造函数
public SeqList(){
length=0;
maxSize = LIST_SIZE;
data=new int[maxSize];
System.out.println("初始化成功");
}
//有参构造函数
public SeqList(int size){
length=0;
maxSize=size;
data=new int[maxSize];
System.out.println("初始化成功");
}
//添加元素
public void AddIntoList(int i){
if(length>=maxSize){
System.out.println("溢出");
return;
}
data[length]=i;
length++;
System.out.println("添加成功");
}
//插入位置及元素
public void InsertIntoList(int i,int num){
//检测插入位置是否合理
if(i<1||i>length+1){
System.out.println("位置错误");
return;
}
//检测是否溢出
if(length>=maxSize){
System.out.println("空间不够");
return;
}
//若插入位置不是末尾
if(i<maxSize){
//被插入位置及后面的位置后移一位
for(int j=length-1;j>=i-1;j--) {
data[j + 1] = data[j];
}
}
//插入位置
data[i-1] = num;
//顺序表长度增加
length++;
System.out.println("插入成功");
}
//删除元素的位置
public void DeleteFromList(int i){
//检测插入位置是否合理
if(i<1||i>length+1){
System.out.println("位置错误");
return;
}
int temp = 0;
temp = data[i-1];
//结点前移
for(int j=i;j<length;j++){
data[j-1]=data[j];
}
//长度减少
length--;
System.out.println("删除成功");
}
//转置
public void Converts(){
int temp;
//分成两个部分
int leng=length/2;
//转置算法
for(int i=0;i<leng;i++){
int j = length-1-i;
temp = data[i];
data[i] = data[j];
data[j] = temp;
}
System.out.println("转置成功");
}
//输出
public void Display(){
int i=0;
for (;i<length-1;i++){
System.out.print(data[i]+"->");
}
System.out.print(data[i]);
System.out.println();
}
}
main.java
public class main {
public static void main(String[] args) {
//SeqList list = new SeqList();
SeqList list = new SeqList(5);
list.AddIntoList(5);
list.AddIntoList(4);
list.AddIntoList(3);
list.AddIntoList(2);
list.AddIntoList(1);
list.Display();
list.AddIntoList(6);
list.Display();
list.DeleteFromList(4);
list.Display();
list.InsertIntoList(6,6);
list.Display();
list.InsertIntoList(4,6);
list.Display();
list.InsertIntoList(5,6);
list.Display();
}
}