public class App {
public static void main( String[] args ){
SequenceList<String> list = new SequenceList<>(10);
list.insert("aaa");
list.insert("bbb");
list.insert("ccc");
list.insert("ddd");
System.out.println(list);
list.insert(1,"eee");
System.out.println(list);
list.remove(1);
System.out.println(list);
System.out.println(list.get(2));
list.clear();
System.out.println(list);
}
//顺序表
static class SequenceList<T>{
//存放元素的数组
T[] elements;
//下一个待插入元素的索引,同时也表示元素个数
int size;
public SequenceList(int capacity){
elements = (T[]) new Object[capacity];
size = 0;
}
public void insert(T t){
elements[size++] = t;
}
//往指定索引位置插入元素
public void insert(int index,T t){
//把index索引处及后面所有元素往后移一个位置
for (int i = size; i>index;i--){
elements[i] = elements[i-1];
}
elements[index] = t;
size++;
}
public T get(int index){
return elements[index];
}
public T remove(int index){
T current = elements[index];
//把指定索引处及后面的元素往前移一个位置
for (int i = index;i<size-1;i++){
elements[i] = elements[i+1];
}
size--;
return current;
}
//清空所有元素
public void clear(){
size =0;
}
public int size(){
return size;
}
public boolean isEmpty(){
return size==0;
}
@Override
public String toString() {
return Arrays.toString(Arrays.copyOf(elements,size));
}
}
}
线性表-顺序表
最新推荐文章于 2024-10-02 00:05:48 发布