java實現資料結構中線性表的順序儲存

來源:互聯網
上載者:User
/**  * @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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.