【Java数据结构】实现顺序表

 ced485cbb11e458d81a746890b32cf3f.gif

作者:渴望力量的土狗

博客主页:渴望力量的土狗的博客主页

专栏:数据结构与算法

工欲善其事必先利其器,给大家介绍一款超牛的斩获大厂offer利器——牛客网

点击免费注册和我一起刷题吧

【Java数据结构】实现顺序表_第1张图片  

SqList:

import java.util.Arrays;

public class SqList {

    private static final int DEFAULTSIZE=10;//默认数组长度

    private int[] elem=new int[DEFAULTSIZE];//数组

    private int usedSize;

    /**
     * getSize()获取有效的长度
     * @return
     */
    public int getSize(){

        return usedSize;

    }

    /**
     * isFull()判断顺序表是否为满
     * @return
     */
    public boolean isFull(){

        return usedSize==DEFAULTSIZE;
    }

    /**
     * isEmpty()判断顺序表是否为空
     * @return
     */
    public boolean isEmpty(){
        return usedSize==0;
    }
    /**
     * disPlay()打印顺序表
     */
    public void disPlay(){

        for (int i = 0; i usedSize){

            System.out.println("pos位置不合法");
            throw new  PosWrongFulException("pos位置不合法!");

        }
        //3、移动位置
        for (int i =usedSize-1; i>=pos; i--) {
            this.elem[i+1]=this.elem[i];
        }

        //4、添加元素
        this.elem[pos]=data;
        //5、usedSize++
        usedSize++;
    }

    /**
     * indexOf(获取第一次出现指定元素的下标)
     * @param data 指定元素
     * @return
     */

    public int indexOf(int data)throws EmptyException{
        //1、判空
        if(isEmpty()){
            System.out.println("顺序表为空");
            throw new  EmptyException("顺序表为空!");
        }
        //2、查找
        for (int i = 0; i < getSize(); i++) {

            if(this.elem[i]==data){
                return i;
            }
        }
        return -1;


    }

    /**
     * valueOf (int pos)获取指定下标的元素
     * @param pos
     * @return
     */
    public int valueOf (int pos)throws PosWrongFulException,EmptyException{
        //1、判空
        if(isEmpty()){
            System.out.println("顺序表为空");
            throw new  EmptyException("顺序表为空!");
        }
        //2、判断位置是否合理
        if(pos<0||pos>usedSize){

            System.out.println("pos位置不合法");
            throw new  PosWrongFulException("pos位置不合法!");

        }
        //3、获取该元素
        return this.elem[pos];

    }

    /**
     * setValue(int pos,int value)设置指定位置的元素
     * @param pos
     * @param value
     */
    public void setValue(int pos,int value)throws PosWrongFulException{
        //1、判断位置是否合法
        if(pos<0||pos>usedSize){

            System.out.println("pos位置不合法");
            throw new  PosWrongFulException("pos位置不合法!");

        }
        //2、设置位置的值
        this.elem[pos]=value;
    }

    /**
     * deletePos(int pos)删除指定位置的元素
     * @param pos
     */
    public void deletePos(int pos)throws EmptyException,PosWrongFulException{
        //1、判空
        if(isEmpty()){
            System.out.println("顺序表为空");
            throw new  EmptyException("顺序表为空!");
        }
        //2、判断位置是否合法
        if(pos<0||pos>usedSize){

            System.out.println("pos位置不合法");
            throw new  PosWrongFulException("pos位置不合法!");

        }

        //3、移动
        for (int i =pos; i

EmptyException:

public class EmptyException extends RuntimeException{
    public EmptyException() {
    }

    public EmptyException(String message) {
        super(message);
    }
}

PosWrongFulException:

public class PosWrongFulException extends RuntimeException{
    public PosWrongFulException() {
    }

    public PosWrongFulException(String message) {
        super(message);
    }
}

Test

public class Test {
    public static void main(String[] args) {

        SqList sqList=new SqList();
        sqList.add(1);
        sqList.add(2);
        sqList.add(3);
        sqList.disPlay();
        try{
            sqList.add(1,10);
        }catch (PosWrongFulException e){

            e.printStackTrace();

        }
        sqList.disPlay();

        try{
            System.out.println(sqList.indexOf(1));
        }catch (EmptyException e){
            e.printStackTrace();
        }

        try{
            System.out.println(sqList.valueOf(1));
        }catch (PosWrongFulException e){
            e.printStackTrace();
        }

        try {
            sqList.setValue(0,99);
        }catch (PosWrongFulException e){
            e.printStackTrace();
        }

        sqList.disPlay();
        try{
            sqList.deletePos(3);
        }catch (PosWrongFulException e){
            e.printStackTrace();
        }

        sqList.disPlay();
        try {
            sqList.delete(2);
        }catch (EmptyException e){
            e.printStackTrace();
        }
        sqList.disPlay();

        sqList.clear();

    }
}

你可能感兴趣的:(数据结构与算法,java,servlet,jvm,数据结构,顺序表)