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[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(isEmpty()){
System.out .println("顺序表为空,无法执行删除操作");
return null;
}else {
if (pos<1||pos>length) {
System.out.println("pos值不合法") ;
return null ;
}
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(isEmpty()){
System. out.println("顺序表为空");
return -1 ;
}else{
for (int i=0;i<length;i++){
if(listArray[i].equals(obj))
return i+1;
}
return 1;
}
}
//顺序表的获取元素
public T value(int pos){
if(isEmpty()){
System.out.println("顺序表为空");
return null;
}else{
if(pos<1||pos>length){
System.out.println("pos值不合法");
return null;
}
return listArray[pos-1];
}
}
//顺序表的更新元素
public boolean modify(T obj,int pos){
if(isEmpty()){
System.out.println("顺序表为空");
return false;
}else{
if(pos<1||pos>length){
System.out.println("error");
return false;
}
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 FileTackling{
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();
e=L.remove(5);
System.out.println("执行删除操作后顺序表中的数据元素为: ");
L.nextOrder();
i=L.find(12);
System.out.println("元素12在线性表中的位序为:"+i);
}
}
java顺序表的实现
最新推荐文章于 2022-03-12 13:20:42 发布