顺序表《java》
接口
public class TestseqList {
public static void main(String[] args) {
SeqList seqList = new SeqList();
seqList.add(0,1);
seqList.add(1,2);
seqList.add(2,3);
seqList.add(1,4);
seqList.add(0,8);
seqList.add(5,9);
seqList.add(6,11);
seqList.add(7,12);
seqList.add(8,13);
seqList.add(9,14);
seqList.add(10,15);
System.out.println("4在线性表里?" + seqList.contains(4));
System.out.println("0在线性表里?" + seqList.contains(0));
System.out.println( "toFind的位置是" + seqList.search(9));
System.out.println("第pos位置的数据" + seqList.getPos(8));
System.out.println("删除 9 前");
seqList.display();
seqList.reMove(9);
System.out.println("删除 9 之后");
seqList.display();
System.out.println("将第 0 位置元素设置为666");
seqList.setPos( 0, 666);
seqList.display();
System.out.println("线性表有效长度size方法" + seqList.size());
System.out.println("线性表有效长度ans" + seqList.getAns());
System.out.println("清空线性表");
seqList.clear();
System.out.println("当前线性表为:");
seqList.display();
}
}
增删改查等内部实现
import java.util.Arrays;
public class SeqList {
private int[] arr = new int[10];
private int ans = 0;
public int getAns() {
return ans;
}
public void display (){
System.out.print("[");
for ( int i = 0; i < ans; i++){
System.out.print(arr[i]);
if ( i != ans - 1){
System.out.print(" " + ",");
}
}
System.out.println("]");
}
public void add(int pos, int data) {
if(pos < 0 || pos > ans) {
return;
}
if ( ans >= arr.length){
enlargeArr(arr);
}
if (pos == ans) {
arr[ans] = data;
ans++;
}else {
for ( int i = ans ; i > pos; i-- ){
arr[i] = arr[i - 1];
}
arr[pos] = data;
ans++;
}
}
public boolean contains (int toFind) {
for ( int i = 0; i < ans; i++) {
if (arr[i] == toFind){
return true;
}
}
return false;
}
public int search (int toFind) {
for( int i = 0; i < arr.length; i++) {
if (toFind == arr[i]){
return i;
}
}
return -1;
}
public int getPos(int pos) {
return arr[pos];
}
public void setPos ( int pos, int value) {
if ( pos < 0 || pos >= ans) {
return;
}
arr[pos] = value;
}
public void reMove (int toReMove) {
int pos = search(toReMove);
if (pos < 0)return;
if (pos == ans - 1){
ans--;
}
for ( int i = pos; i < ans - 1; i++) {
arr[i] = arr[i + 1];
}
ans--;
}
public int size () {
return ans;
}
public void clear () {
ans = 0;
}
private void enlargeArr (int[] arr) {
int[] arr2 = new int[arr.length *2];
arr2 = Arrays.copyOf(arr,arr.length + arr.length);
this.arr = arr2;
}
}