线性表的插入删除(java实现)

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++;	
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值