📄 alist.java
字号:
package myBag;
import myBag.List;
public class AList implements List{ //用数组实现的线性表
private Object[] listArray; //存储表元素的数组
private static final int defaultSize = 10; //默认的数组长度
private int msize; //数组的长度
private int numInList; //表元素数量,不应当超过数组长度;
private int curr; //当前元素位置
public AList(){ setup(defaultSize); } //创建默认长度的顺序表
public AList(int sz){ setup(sz); } //创建指定长度的顺序表
private void setup(int sz){ //创建顺序表,供构造方法调用
msize = sz;
numInList = curr = 0;
listArray = new Object[sz];
}
public void clear(){ //从表中移去所有元素
numInList = curr = 0;
}
public void insert(Object it){ //在curr位置插入元素
Assert.notFalse(numInList < msize, "表是满的");
Assert.notFalse((curr >= 0) && (curr <= numInList), "当前位置越界");
for(int i = numInList; i > curr; i--) listArray[i] = listArray[i-1];
listArray[curr] = it;
numInList++;
}
public void append(Object it){ //在表尾插入元素
Assert.notFalse(numInList < msize, "表是满的");
listArray[numInList++] = it;
}
public Object remove(){ //移去并返回当前元素
Assert.notFalse(!isEmpty(), "不能从空表删去元素");
Assert.notFalse(isInList(), "当前位置越界");
Object it = listArray[curr];
for(int i=curr; i<numInList-1; i++) listArray[i] = listArray[i+1];
numInList--;
return it;
}
public void setFirst(){ curr = 0; } //设置当前位置为第1个位置
public void next(){ curr++; } //将当前位置移到下一个元素
public void prev(){ curr--; } //将当前位置移到前一个元素
public int length(){ return numInList; } //返回表的当前长度
public void setPos(int pos){ curr = pos; } //设置当前位置为pos
public void setValue(Object it){ //设置当前元素中的元素值
Assert.notFalse(isInList(), "当前位置越界");
listArray[curr] = it;
}
public Object currValue(){ //返回当前元素中的元素值
Assert.notFalse(isInList(), "当前位置越界");
return listArray[curr];
}
public boolean isEmpty(){ //若表为空返回true
return numInList == 0;
}
public boolean isInList(){ //若当前位置在表中,返回true
return (curr>=0) && (curr < numInList);
}
public void print(){ //打印表中的所有元素
if(isEmpty()) System.out.println("( )");
else {
System.out.print("( ");
for( setFirst(); isInList(); next()) System.out.print(currValue()+" ");
System.out.println(")");
}
}
}//class AList
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -