顺序表的实现

顺序表很简单,表里面有个数组,数组中实际元素的个数(长度)lengthSqlCurrent,还有就是初始大小变量。可以解决约瑟夫环问题。
最核心的两个方法:删除和插入,这两个过程要移动元素。
核心代码:
package com.ibm.jzy.seqList;

public class SqList implements ISqList {
	private static int defaultSize=100;
	private static int defaultIncrement=10;//if the space not enough,the the length+10
	private int array[]=new int[defaultSize];
	private int lengthSqlCurrent=0;//线性表的长度the lengthSqlCurrent means the amount of the number.
	private int size=defaultSize;//the length of the space given.数组的长度
	
	@Override
	public boolean isEmpty() {
		// TODO Auto-generated method stub
		if(lengthSqlCurrent==0)return true;
		return false;
	}

	public void setLengthSqlCurrent(int lengthSqlCurrent) {
		this.lengthSqlCurrent = lengthSqlCurrent;
	}

	@Override
	public int getLengthSqlCurrent() {
		// TODO Auto-generated method stub
		return lengthSqlCurrent;
	}

	@Override
	public int getElement(int index) {
		// TODO Auto-generated method stub
		if(index>lengthSqlCurrent){
			System.out.println("获取元素不存在,请输入正确的值");
			return -1;
		}
		return array[index-1];
	}

	@Override
	public boolean addElement(int index, int element) {//插入的位置只能为(1--lengthSqlCurrent+1)
		// TODO Auto-generated method stub
		if(index<1||index>lengthSqlCurrent+1)return false;
		sqListIncrement(index);
		lengthSqlCurrent++;
		for(int i=lengthSqlCurrent;i>index-1;i--){
			array[i]=array[i-1];
		}
		array[index-1]=element;
		return true;
	}

	@Override
	public void setElement(int index, int element) {
		// TODO Auto-generated method stub
		array[index-1]=element;
		
	}

	@Override
	public boolean remove(int index) {
		// TODO Auto-generated method stub
		if(index<1||index>lengthSqlCurrent)return false;
		for(int i=index;i<=lengthSqlCurrent;i++){
			array[i-1]=array[i];
		}
		lengthSqlCurrent--;
		return true;
	}

	@Override
	public void sqListIncrement(int index) {//when you use the function of addElement(),you should use this function.
		// TODO Auto-generated method stub
		if(lengthSqlCurrent>=size){
			size+=defaultIncrement;
			int newArray[]=new int[size];
			for(int i=0;i<lengthSqlCurrent;i++){
				newArray[i]=array[i];
			}
			array=newArray;
		}
		
	}

	@Override
	public void clear() {
		// TODO Auto-generated method stub
		int newArray[]=new int[defaultSize];
		array=newArray;
		lengthSqlCurrent=0;
		size=defaultSize;
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值