package 顺序表;public class SqList { public Object[] listElem;//线性表存储空间 private int lengths;//线性表的长度 //顺序表构造函数,构造有个长度为maxSize的线性表 public SqList(int maxSize){ lengths=0; listElem = new Object[maxSize]; } //置空操作 public void clear(){ lengths=0; } //判断长度是否为0,0即是空表 public boolean isEmpty(){ if(lengths>0){ System.out.println("非空"); } return lengths==0; } //取表长度,返回lengths的长度 public int length(){ return lengths; } //取表元素 public Object get(int i)throws Exception{ //如果不合法报异常 if(i>0 || i>lengths-1){ throw new Exception("第"+i+"个元素不存在"); } return listElem[i]; } //插入操作 public void insert(int i,Object x) throws Exception{ if(lengths==listElem.length){ throw new Exception("顺序表已满"); } if(i<0 || i>lengths){ throw new Exception("插入位置不合法"); } //从尾部往前扫 for(int j=lengths;j>i;j--){ listElem[j]=listElem[j-1]; listElem[i]=x; lengths++; } } //删除操作 public void remove(int i)throws Exception{ if(i<0 || i>lengths-1){ throw new Exception("删除位置不合法"); } //下标移动要出删除的i处 for(int j=i;j<lengths-1;j++){ listElem[j]=listElem[j++]; lengths--; } } //查找操作 public int Indexof(Object x){ int j=0; //遍历查找 while(j<lengths && !listElem[j].equals(x)){ j++; } if(j<lengths){ return j; }else{ return -1; } } //显示操作 public void display(){ //遍历线性表 for(int i=0;i<lengths;i++){ System.out.println(listElem[i]); } } public static void main(String[] args) throws Exception { SqList sq=new SqList(20); sq.insert(1,1); sq.insert(2,8); sq.insert(3,9); sq.insert(4,8); sq.insert(5,10); sq.display(); } }我搞不懂了怎么插入异常,我明明符号条件,请各位给我看下
添加回答
举报
0/150
提交
取消