猿问

用java实现顺序表报异常

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();
    }    
}


我搞不懂了怎么插入异常,我明明符号条件,请各位给我看下

慕先生4463397
浏览 1212回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答