1. 程式人生 > >1、順序表

1、順序表

順序表: 順序表比較簡單,就是建立一個數組,順序儲存某一型別的資料,

 *   @Author : WHVO
 *
 *   @Description:
 *
 *   @Date: Created in 19:05 2018/11/21/021
 *
 *   @Modified By:  順序表
 *
 */

import java.util.Arrays;

public class testSqlist {
    private int[] elem;
    private int size;

    public testSqlist() {
        this(10);
    }
    public testSqlist(int size) {
        elem = new int[size];
    }
    // 檢查是否滿了
    public boolean isFill() {
        return size == elem.length;
    }
    //根據索引插入資料
    public boolean insert(int index, int val) {
        //擴容
        if (isFill()) {
            Arrays.copyOf(elem, 2 * elem.length);
        }
        // 檢查索引
        if (index < 0 || index > size) {
            return false;
        } else {
            for (int i = size - 1; i >= index; i--) {
                //數字後移
                elem[i + 1] = elem[i];
            }
            elem[index] = val;
            size++;
            return true;
        }
    }
    //是否為空
    public boolean isEmpty() {
        return size == 0;
    }
    //查詢關鍵字下標
    public int serach(int key) {
        if (isEmpty()) {
            return -1;
        } else {
            for (int i = 0; i < size; i++) {
                if (this.elem[i] == key) {
                    return i;
                }
            }
        }
        return -1;
    }
    //刪除關鍵字key的值;
    public boolean remove(int key) {
        int index = serach(key);
        if (index == -1) {
            return false;
        } else {
            for (int j = index; j < this.size - 1; j++) {
                elem[j] = elem[j + 1];
            }
            this.size--;
            return true;
        }
    }
    // 得到索引位置的值
    public Object getVal(int pos) {
        if (pos < 0 || pos > size || isEmpty()) {
            throw new UnsupportedOperationException();
        } else {
            return elem[pos];
        }
    }
    public String toString() {
       return Arrays.toString(elem);
    }
}