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