代码如下:
public class sequenceList<T> {
//设置默认长度
private final int maxSize = 10;
//线性表的长度
private int length;
//设置线性表初始状态
private T[] listArray;
//初始化
//无参构造方法
public sequenceList(){
length = 0;
listArray = (T[]) new Object[maxSize];
}
//有参构造方法
public sequenceList(int n){
if (n <= 0){
System.out.println("error");
System.exit(1);
}
length = n;
listArray = (T[]) new Object[n];
}
//增加元素
public boolean add(T obj,int pos){
if (pos > length +1 || pos < 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[i];
}
listArray = p;
}
for (int i = length;i >= pos;i--){
listArray[i] = listArray[i-1];
}
listArray[pos-1] = obj;
length++;
return true;
}
//删除元素
public T remove(int pos){
if (length==0){
System.out.println("顺序表为空,无法执行删除元素操作");
return null;
}else if (pos < 1 || pos >length+1){
System.out.println("pos值不合法");
}
T x = listArray[pos -1];
for (int i=pos;i<=length;i++){
listArray[i-1] = listArray[i];
}
length--;
return x;
}
//查找元素
public int find(T obj){
if (length==0){
System.out.println("顺序表为空");
return -1;
}
for (int i=0;i<length;i++){
if (listArray[i].equals(obj)){
return i+1;
}
}
return -1;
}
//获取顺序表第pos个位置的元素
public T value(int pos){
if (length==0){
System.out.println("顺序表为空");
return null;
}else if (pos < 1 || pos >length){
System.out.println("pos值不合法");
}
return listArray[pos-1];
}
//修改元素
public boolean modify(T obj,int pos){
if (length==0){
System.out.println("顺序表为空");
return false;
}else if (pos < 1 || pos >length){
System.out.println("pos值不合法");
}
listArray[pos-1] = obj;
return true;
}
//判断是否为空
public boolean isEmpty(){
return length == 0;
}
//求顺序表的长度
public int size(){
return length;
}
//正序输出顺序表中的所有元素
public void nextOrder(){
for (int i=0;i<length;i++){
System.out.println(listArray[i]);
}
}
//顺序表的清空
public void clear(){
length=0;
}
}
测试代码如下:
public class testSequenceList {
public static void main(String[] args) {
sequenceList<Integer> L=new sequenceList<Integer>( );
int status,e,i;
int []a={23,56,12,49,35};
for(i=0;i<a.length;i++)
L.add(a[i], i+1); //将数组中个元素插入到顺序表中
System.out.println("顺序表中的数据元素为:");
L.nextOrder();
L.add(30, 4);
System.out.println("执行插入操作后顺序表中的数据元素为:");
L.nextOrder();
e=L.remove(5);
System.out.println("执行删除操作后顺序表中的数据元素为:");
L.nextOrder();
i=L.find(12); //在顺序表L中查找元素12的位序
System.out.println("元素12在线性表中的位序为:"+i);
}
}
多写写代码,有助于提高自己的基础开发能力