是光の谢宣骞 2021-04-15 15:29 采纳率: 70%
浏览 32
已结题

问一下各位大佬,我的代码还有什么地方可以提升的吗,性能优化之类的,用数组实现顺序表

package com.hnucm.linkedlist;

import java.util.Scanner;

public class orderline {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int maxSize;
        Scanner scanner=new Scanner(System.in);
        maxSize = scanner.nextInt();
        Orderlist orderlist = new Orderlist(maxSize);
        orderlist.init();
        orderlist.orderinsert(10);
        orderlist.orderinsert(10);
        orderlist.orderinsert(10);
        orderlist.orderinsert(10);
        orderlist.posinsert(2,1);
        orderlist.posinsert(2,orderlist.getLength()+1);
        orderlist.orderde();
        orderlist.posdel(1);
        System.out.println(orderlist.getLength());
        System.out.println(orderlist.getData());
    }

}
class Orderlist{
    private int maxSize;
    private int[] arr;
    private int length;
    public Orderlist(int size) {
        maxSize = size;

    }
    //	初始化
    public void init(){
        this.arr = new int[this.maxSize];
        this.length=0;
    }
    //	判断是否为空
    public boolean isEmpty(){
        if(this.length==0){
            System.out.println("链表为空");
            return true;
        }
        return false;
    }
    //	判断是否已满
    public boolean isFull(){
        if(this.length == this.maxSize){
            System.out.println("链表已满");
            return true;
        }
        return false;
    }
    //	获取链表的长度
    public int getLength(){
        return this.length;
    }
//    获取链表数据
    public String getData(){
        String str = "";
        int temp;
        for(int i=0;i<length;i++){
            temp = this.arr[i];
            str += temp+" ";
        }
        return str;
    }
    //	顺序插入操作
    public boolean orderinsert(int val){
//		判满
        if(this.isFull()){
            return false;
        }
        else{
            this.arr[length]=val;
            this.length++;
            return true;
        }

    }
//    按位置插入操作
//    pos为正常位置
    public boolean posinsert(int val,int pos){
//        判满
        if(this.isFull()){
            return false;
        }
//        判断位置是否正确

        else {
            if (pos < 1 || pos > length + 1) {
                System.out.println("插入位置不正确");
                System.out.printf("插入位置应为%d~%d",1,this.length+1);
                return false;
            }
            else{
//                从后往前将pos以及pos之后的数据向后移动
//                关键代码
                for(int i = this.length;i>=pos;i--){
                    this.arr[i] = this.arr[i-1];
                }
                this.arr[pos-1] = val;
                this.length++;
                return true;
            }
        }
    }
//    顺序删除元素
//    从前往后删
    public boolean orderde(){
//        判空
        if(this.isEmpty()){
            return false;
        }
        else{
            for (int i = 1;i<this.length;i++){
                this.arr[i-1] = this.arr[i];
            }
            this.length--;
            return true;
        }
    }
//    按位置删除元素
    public boolean posdel(int pos){
//        判空
        if(this.isEmpty()){
            return false;
        }
//        判断位置是否正确
        else {
            if(pos<1 || pos>this.length){
                System.out.println("删除位置不正确");
                System.out.printf("删除位置应为%d~%d",1,this.length);
                return false;
            }
            else {
                for(int i = pos;i<this.length;i++){
                    this.arr[i-1] = this.arr[i];
                }
                this.length--;
                return false;
            }
        }
    }
}
  • 写回答

1条回答 默认 最新

  • BCS-点心 2021-04-16 09:09
    关注

    这里还没有你需求的这样的大佬

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月12日
  • 已采纳回答 8月4日

悬赏问题

  • ¥15 制裁名单20240508芯片厂商
  • ¥20 易康econgnition精度验证
  • ¥15 线程问题判断多次进入
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接