线性表-顺序表

    public class SequenceList<T> {
        public T[] eles;
        public int N;
    
        public static void main(String[] args) {
            SequenceList<String> s = new SequenceList<>(4);
            s.insert("马");
            s.insert("王");
            s.insert("刘");
            s.insert("朱");
            s.insert("孙");
            //插入
            s.insert(2, "测试");
            s.delete(3);
            //打印所有元素
            s.total();
            //搜索元素
            s.search("孙");
        }
        //初始化
        public SequenceList(int capacity){
            this.eles=(T[])new Object[capacity];//强转
            this.N =0;
        }
    
        //获取所有元素
        public boolean total(){
            System.out.println("总量: "+N);
            for (int i = 0; i < eles.length; i++) {
                System.out.print(eles[i] + "  ");
            }
            return true;
        }
    
        //数组扩容
        public void resize(int newsize){
            T[] temp = eles;
            eles = (T[]) new Object[newsize];
            for (int i = 0; i < N; i++) {
                eles[i] = temp[i];
            }
        }
    
        //获取指定位置
        public T get(int i){
            return eles[i];
        }
    
        //添加元素
        public void insert(T t){
            //扩容
            if (N == eles.length){
                resize(2*eles.length);
            }
            eles[N++] = t;
        }
    
        //插入数据t 在第i位置
        public void insert( int i,T t){
    
            //扩容
            if (N == eles.length){
                resize(2*eles.length);
            }
    
            N++;
            for (int index = N; index > i; index--) {
                eles[index]=eles[index-1];
            }
            eles[i]=t;
        }
    
        //删除指定 位置 i 元素,并返回该元素
        public T delete(int i){
            T current =eles[i];
    
            for (int index = i; index < N; index++) {
                eles[index] = eles[index+1];
            }
            N--;
            return current;
        }
    
        //查找t元素第一次出现的位置
        public void search(T t){
            for (int i = 0; i < N; i++) {
                if (t == eles[i]){
                    System.out.println();
                    System.out.println("item: " + eles[i] +"  "+ "index: "+i);
                }
            }
    
        }
    
    }
最后修改:2022 年 11 月 09 日
如果觉得我的文章对你有用,请随意赞赏