国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

線性表簡述

2019-11-15 00:01:01
字體:
來源:轉載
供稿:網友
線性表簡述一、簡單實現增,刪,改、查
package datatructs;/** * 表接口 */public interface LinearList {        boolean isEmpty();//判斷線性表是否為空    int size();   //返回線性表的大小    Object get(int index); //獲取指定索引的元素    Object set (int index,Object element);//修改指定索引的元素        boolean addForIndex(int index,Object element);//在指定索引位置添加的元素        boolean add(Object element);//在線性表最后添加元素        Object remove(int index); //移除指定位置的元素        void clear(); //清空線性表                }

實現類

package datatructs;public class LinearListImpl implements LinearList {    //線性表    PRivate Object [] sList;    //線性表大小    private int size;                public LinearListImpl(int length) {        if(length<0){            sList=new Object[10];        }else{            sList=new Object[length];        }    }            public LinearListImpl() {        //設置默認為10個大小        this(10);    }    /*     * 檢查線性表是否為空     */    @Override    public boolean isEmpty() {        //如果size=0就說明為空 true,不為0就為false        return size==0;        }    /*     * 返回線必表的大小     */    @Override    public int size() {            return size;    }        /*         * 返回指定索引位置的元素         */    @Override    public Object get(int index) {                return sList[index];    }                @Override    public Object set(int index, Object element) {        //得到原來位置上的元素        Object old=sList[index];        //修改        sList[index]=element;        //返回原來的值        return old;      }    /*     * 檢查在指定位置添加元素的,索引是否在范圍內     */    public void checkIndexForAdd(int index){        if(index<0 || index>size){            throw new IndexOutOfBoundsException("要插入的索引不在表的范圍內");        }    }    /*     * 檢查在指定索引是否在范圍 內     */    public void checkIndex(int index){        if(index>size){            throw new IndexOutOfBoundsException("要操作的索引不在表的范圍內");        }    }            /*         *在指定索引位置添加              */    @Override    public boolean addForIndex(int index, Object element) {        checkIndexForAdd(index);                //判斷線性表是否還有空間        if(size()==sList.length){            //如果為0            if(sList.length==0){                //初始化為10                sList=new Object[10];            }else{                //不為空就+1                //臨時表                Object [] tmp=sList;                //重新+1                 this.sList=new Object[sList.length+1];                //將元素復制過來                for (int i = 0; i < size; i++) {                    sList[i]=tmp[i];                }            }        }        //向后移一位        for(int i=size-1;i>=index;i--){            sList[i]=sList[i+1];        }        //插入元素        sList[index]=element;        size++;        return true;    }    /*     * 在最后添加元素     */    @Override    public boolean add(Object element) {        //調用 上面的添加方法         return addForIndex(size,element);            }    /*     * 刪除指定索引的元素     */    @Override    public Object remove(int index) {        checkIndex(index);        for(int i=index;i<size-1;i++){            sList[i]=sList[i+1];        }        sList[--size]=null;        //返回要移除的元素        return sList[index];    }    @Override    public void clear() {        for (int i = 0; i < size; i++) {            //將每個值設置為null            sList[i]=null;        }        //將線性表大小設置0        size=0;    }}

測試

package datatructs;public class Demo {    /**     * @param args     */    public static void main(String[] args) {        LinearListImpl ll=new LinearListImpl();        System.out.println("是否為空:  "+ll.isEmpty());        System.out.println("大小:"+ll.size());        ll.add("張三");        ll.add("李四");        ll.addForIndex(2, "王五");                System.out.println(ll.set(2, "趙六"));                                ll.remove(2);        for (int i = 0; i < ll.size(); i++) {            System.out.print("/t第"+i+" 元素 :"+ll.get(i));        }                ll.clear();        System.out.println("元素大小:"+ll.size());        System.out.println("是否為空:  "+ll.isEmpty());    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 叙永县| 达拉特旗| 泰州市| 黄平县| 加查县| 水富县| 安陆市| 乐亭县| 临安市| 衡南县| 萨迦县| 昭平县| 六枝特区| 聂拉木县| 石门县| 揭东县| 云浮市| 松桃| 贺州市| 孟津县| 嵊州市| 尼勒克县| 泸西县| 靖州| 闽侯县| 邹平县| 城口县| 米脂县| 安宁市| 寿光市| 平果县| 平和县| 鄂伦春自治旗| 绥棱县| 吴堡县| 裕民县| 安吉县| 东平县| 宁远县| 菏泽市| 横峰县|