public interface ListMethod { int size(); //判断线性表是否为空 boolean isEmpty(); //插入元素 void insert(int i, Object obj) throws Exception; //删除元素 void delete(int i) throws Exception; //获取指定位置的元素 Object get(int i) throws Exception; }
}public class List implements ListMethod{ //默认最大的长度为10; public static final int DefoultSIZE=10; //线性表最大长度 int maxSize; //线性表list的当前度 int length; //对象数组 Object[] listArray;//对象数组 public List( int length) { maxSize=length; this.length=0; listArray=new Object[length]; } //判断线性表是否为空 public boolean isEmpty() { if(length==0){ return true; } return false; } @Override public int size(){ return length; } @Override public void delete(int i) throws Exception { //删除线性表第i各位置的元素 if(isEmpty()){ throw new Exception("该表空,无法删除"); } if(i<0||i>length-1){ throw new Exception("该表删除的位置越界,无法删除"); } for(int k=i;k<=length-1;k++){ listArray[k-1]=listArray[k]; } length--; } public Object get(int i) throws Exception { if(i<0||i>length-1){ throw new Exception("参数有错误"); } return listArray[i]; } @Override public void insert(int i, Object obj) throws Exception { if(length==maxSize){ throw new Exception("位置已满,别插了"); } //如果你插入的位置比0小,或者你插入的位置比现在最大长度还大 if(i<0||i>maxSize-1){ throw new Exception("参数有错误"); } for(int k=length-1;k>=i;k--){ listArray[k+1]=listArray[k]; } listArray[i] = obj; length++; }
线性表的插入删除(java实现)
最新推荐文章于 2024-10-02 16:22:40 发布