/** * @author NEOSONG* @date Sep 28, 2017 * 7:30:43 PM* program OF information:定義一些線性結構操作* 1,定義介面,並在其中定義方法,介面是100%的抽象類別,僅有方法頭,沒有方法體 */public interface SqlList {int count();//求長度void clear();//清空操作boolean isEmpty();//判斷順序表是否為空白boolean isFull();//判斷是否已滿void attend(T item);//附加操作void insert(T item,int l);//插入操作void delete(int i);//刪除操作T getElement(int i);//取表元int locate(T item);//定位}/** @date Sep 28, 2017 * 7:44:53 PM* program OF information: 資料結構---線性表--順序表的實現* 2.實現介面中定義的方法 */public class SequenceList implements SqlList{//定義構造方法,以初始設定變數public SequenceList(){}public SequenceList(int size){if(size>=0){list=(T[])new Object[size];//初始化T類型數組list,不能用子類引用指向父類對象,故需強制轉換this.maxSize=size;last=-1;}elsethrow new RuntimeException("初始化大小不能小於0"+size);}private int last;//定義last用於儲存最後一個元素的位置private int maxSize;//用於定義順序表最大的儲存能力,last<=maxSizeprivate T[] list;public T getList(int index) {return list[index];}public void setList(int index,T value) {list[index]=value;} public int getLast() {return last;}public void setLast(int last) {this.last = last;}public int getMaxSize() {return maxSize;}public void setMaxSize(int maxSize) {this.maxSize = maxSize;}//SequenceList[] list=new SequenceList[maxSize];//求長度public int count(){return last+1;}//清空public void clear(){//setLast(-1);setLast(-1);}//判斷是否為空白public boolean isEmpty(){return last==-1;}//判斷是否已滿public boolean isFull(){return last==maxSize-1;//此地方在自己寫的時候錯誤,沒有-1}//附加---迴圈遍曆到最後一個數,然後加進去public void attend(T item){//判斷線性表是否已滿,以增強程式的健壯性 if(isFull()){ System.out.println("數組已經滿了"); return;//結束方法 }list[++last]=item;}//插入 list--- 數組, item---數值 l---位置public void insert(T item,int l){//判斷數組是否已滿if(isFull()){System.out.println("數組已經滿了");return;}//判斷l的數值是否正確if(l<1||l>last+2){System.out.println("位置不正確,請檢查");return;}// for(int i=last+1;i>l-1;i--){// list[i]=list[i-1];// }list[l-1]=item;last++;//數組最後一個元素的位置改變}//刪除 list ----數組 l----位置public void delete(int l){//判斷線性表是否為空白if(isEmpty()){System.out.println("數組為空白");return;}if(l<1||l>count()){//這個地方調用了count()方法,所以在count方法中返回last值時, //不能用last++。這樣會無形中增加last的值,以至於在遍曆輸出數組時,最後一個數值會是nullSystem.out.println("輸入資料有誤"); return;}//正式刪除代碼for(int i=l-1;i