顺序表

Posted 被罚站的树

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顺序表相关的知识,希望对你有一定的参考价值。

package com.dy.xidian;

public class SequenceTable<T> {
    // 顺序表总大小
    private int maxSize = 50;
    private T data[] = (T[]) new Object[maxSize];
    // 当前表的长度
    private int length;

    /**
     * 表的大小采用默认方式
     */
    public SequenceTable() {

    }

    /**
     * 
     * @param _maxSize指定表的大小
     */
    public SequenceTable(int _maxSize) {
        this.maxSize = _maxSize;
    }

    /**
     * 插入操作
     * 
     * @param i
     *            插入元素的位置
     * @param e
     *            插入的元素
     * @return 插入后返回的结果成功或失败 元素的其实位置从0开始
     */
    public boolean listInsert(int i, T e) {
        if (i < 0 || i > length)
            return false;
        if (length >= maxSize)
            return false;
        for (int j = length; j > i; j--)
            data[j] = data[j - 1];
        data[i] = e;
        length++;
        return true;
    }

    /**
     * 删除操作
     * 
     * @param i
     *            要删除元素的位置
     * @return 返回成功或失败
     */
    public boolean listDelete(int i) {
        if (i < 0 || i > length - 1)
            return false;
        for (int j = i; j < length; j++)
            data[j] = data[j + 1];
        length--;
        return true;
    }

    /**
     * 元素定位
     * 
     * @param e
     *            欲查询的元素
     * @return 元素的位置
     */

    public int locateElem(T e) {
        int i;
        for (i = 0; i < length; i++)
            if (data[i] == e)
                return i + 1;
        return -1;
    }

    /**
     * 获取元素
     * 
     * @param i
     * @return
     */
    public T listGet(int i) {
        if (i < 0 || i > length - 1)
            return null;
        return data[i];
    }

    public static void main(String[] args) {
        SequenceTable<Integer> list = new SequenceTable<>();
        // 在数组0处插入5
        list.listInsert(0, 5);
        System.out.println(list.listGet(0));
        // 在数组1处插入10
        list.listInsert(1, 10);
        // 删除数组0处的元素
        list.listDelete(0);
        System.out.println(list.listGet(0));
    }
}

 顺序表元素逆置

void reverse(List list){
    E e;
    for(int i=0; i<list.getLength()/2;i++){
         e = list.data[i];
         list.data[i] = list.data[list.length-i-1];
         list.data[list.length-i-1] = e;  
    }        
}

以上是关于顺序表的主要内容,如果未能解决你的问题,请参考以下文章

将数据从底部工作表对话框片段传递到片段

Android 在 FragmentPagerAdapter 中更改片段顺序

从底部工作表对话框片段中获取价值

关于代码片段的时间复杂度

Mysql Innodb 表碎片整理

片段(Java) | 机试题+算法思路+考点+代码解析 2023