顺序表的java实现

SeqList.java

public class SeqList {
    //初始空间为5
    private static final int LIST_SIZE = 5;
    //数组data用来存放数据
    private int[] data;
    //当前表长,实际存储元素的个数
    private int length;
    //当前表长,实际存储元素的个数
    private int maxSize;
    
    //无参构造函数
    public SeqList(){
        length=0;
        maxSize = LIST_SIZE;
        data=new int[maxSize];
        System.out.println("初始化成功");
    }
    
    //有参构造函数
    public SeqList(int size){
        length=0;
        maxSize=size;
        data=new int[maxSize];
        System.out.println("初始化成功");
    }
    
    //添加元素
    public void AddIntoList(int i){
        if(length>=maxSize){
            System.out.println("溢出");
            return;
        }
        data[length]=i;
        length++;
        System.out.println("添加成功");
    }
    
    //插入位置及元素
    public void InsertIntoList(int i,int num){
        //检测插入位置是否合理
        if(i<1||i>length+1){
            System.out.println("位置错误");
            return;
        }
        //检测是否溢出
        if(length>=maxSize){
            System.out.println("空间不够");
            return;
        }
        //若插入位置不是末尾
        if(i<maxSize){
            //被插入位置及后面的位置后移一位
            for(int j=length-1;j>=i-1;j--) {
                data[j + 1] = data[j];
            }
        }
        //插入位置
        data[i-1] = num;
        //顺序表长度增加
        length++;
        System.out.println("插入成功");
    }

    //删除元素的位置
    public void DeleteFromList(int i){
        //检测插入位置是否合理
        if(i<1||i>length+1){
            System.out.println("位置错误");
            return;
        }

        int temp = 0;
        temp = data[i-1];
        //结点前移
        for(int j=i;j<length;j++){
            data[j-1]=data[j];
        }
        //长度减少
        length--;
        System.out.println("删除成功");
    }

    //转置
    public void Converts(){
        int temp;
        //分成两个部分
        int leng=length/2;
        //转置算法
        for(int i=0;i<leng;i++){
            int j = length-1-i;
            temp = data[i];
            data[i] = data[j];
            data[j] = temp;
        }
        System.out.println("转置成功");
    }

    //输出
    public void Display(){
        int i=0;
        for (;i<length-1;i++){
            System.out.print(data[i]+"->");
        }
        System.out.print(data[i]);
        System.out.println();
    }
}

main.java

public class main {
     public static void main(String[] args) {
        //SeqList list = new SeqList();
        SeqList list = new SeqList(5);
        list.AddIntoList(5);
        list.AddIntoList(4);
        list.AddIntoList(3);
        list.AddIntoList(2);
        list.AddIntoList(1);
        list.Display();
        list.AddIntoList(6);
        list.Display();
        list.DeleteFromList(4);
        list.Display();
        list.InsertIntoList(6,6);
        list.Display();
        list.InsertIntoList(4,6);
        list.Display();
        list.InsertIntoList(5,6);
        list.Display();
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值