Java顺序表的就地逆置算法
假设已经定义有顺序表类SequenceList,该类中定义了表的相关操作方法,试编写程序实现顺序表的就地逆置算法,即在原表的存储空间将顺序表(a1,a2,a3,…,an)逆置为(an,an-1,…,a1)。
先上效果图
import java.util.ArrayList;
import java.util.List;
public class SequenceList<T> {
final int maxSize = 10;
private T[] listArray;
private int length;
// 顺序表的初始化
public SequenceList() {
length = 0; // 线性表初始化为空
listArray = (T[]) new Object[maxSize];
}
public SequenceList(int n) {
if (n <= 0) {
System.out.println("error!");
System.exit(1);
}
length = 0; // 线性表初始化为空
listArray = (T[]) new Object[n];
}
// 顺序表的插入
public boolean add(T obj, int pos) {
if (pos < 1 || pos > length + 1) {
System.out.println("pos值不合法");
return false;
}
// 顺序表数组空间已满,则重新分配存储空间
if (length == listArray.length) {
T[] p = (T[]) new Object[length * 2];
for (int i = 0; i < length; i++)
p[i] = listArray