zoukankan      html  css  js  c++  java
  • 顺序表

    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;  
        }        
    }
  • 相关阅读:
    HDU 6370 dfs+并查集
    牛客网暑期ACM多校训练营(第六场)G
    HDU 6351暴力枚举 6354计算几何
    2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 A,D
    2018 百度之星 初赛 第六题 HDU6349
    HDU 6336 子矩阵求和
    HDU 6333 莫队+组合数
    BZOJ 2308 莫队入门经典
    Linux系统管理第一章
    2019年7月17日
  • 原文地址:https://www.cnblogs.com/xidongyu/p/5921199.html
Copyright © 2011-2022 走看看