美文网首页
Java操作线性表

Java操作线性表

作者: 努力的土豆 | 来源:发表于2020-03-25 20:05 被阅读0次

首先定义线性表模型以及相关的操作

public class MySqList {
    private static int MAX_SIZE = 100;
    /** 数组 */
    public static int[] data;
    /** 记录线性表的长度*/
    public static int size;

    /**
     * 初始化线性表
     */
    public static int init() {
        data = new int[MAX_SIZE];
        size = 0;
        return size;
    }

    /**
     * 创建一个长度为n的线性表
     * @param n
     * @return
     */
    public static int[] createSq(int n) {
        init();
        if (n > MAX_SIZE) {
            return null;
        }
        for (int i = 0; i < n; i++) {
            data[i] = i+1;
        }
        size = n;
        int[] temp = new int[n];
        for (int i = 0; i < n; i++) {
            temp[i] = data[i];
        }
        return temp;
    }

    /**
     * 获取线性表,第n的位置的数据
     * @param n
     * @param arr
     * @return
     */
    public static int getValue(int n, int[] arr) {
        if (n > size) {
            return -1;
        }
        return arr[n-1];
    }

    /**
     * 查询,线性表中值为value的数据,成功返回其位置,失败返回-1;
     * @param value
     * @param arr
     * @return
     */
    public static int searchValue(int value, int[] arr) {
        for (int i = 0; i < size; i++) {
            if (data[i] == value) {
                return i+1;
            }
        }
        return -1;
    }

    /**
     * 向线性表插入一个数据,成功返回线性表长度,失败返回-1;
     * @param i
     * @param value
     * @param arr
     * @return
     */
    public static int insertSq(int i, int value, int[] arr) {
        if (i < i || i > size+1) {
            return -1;
        }
        if (arr.length == MAX_SIZE) {
            return -1;
        }
        int j = -1;
        for (j = size -1; j >= i-1 ; j--) {
            data [j+1] = data[j];
        }
        data[j+1] = value;
        size++;
        return size;
    }

    /**
     * 删除第n的位置的值
     * @param n
     * @param arr
     * @return
     */
    public static int deleteSq(int n, int[] arr) {
        if (n < 1 || n > size) {
            return -1;
        }
        for (int i = n-1; i < size; i++) {
            data[i] = data[i+1];
        }
        size--;
        return size;
    }
}

测试

public class SqTest {
    public static void main(String[] args) {
        m6();
    }

    private static void m6() {
        int[] sq = MySqList.createSq(10);
        int i = MySqList.deleteSq(11, sq);
        System.out.println(i);
    }

    private static void m5() {
        int[] sq = MySqList.createSq(10);
        int i = MySqList.insertSq(5, 100, sq);
        System.out.println(i);
        int[] data = MySqList.data;
        for (int datum : data) {
            System.out.println(datum);
        }
    }

    private static void m4() {
        int[] sq = MySqList.createSq(10);
        int i = MySqList.searchValue(100, sq);
        System.out.println(i);
    }

    private static void m3() {
        int[] sq = MySqList.createSq(10);
        int value = MySqList.getValue(11, sq);
        System.out.println(value);
    }

    private static void m2() {
        int[] sq = MySqList.createSq(10);
        for (int i : sq) {
            System.out.println(i);
        }
    }

    private static void m1() {
        int init = MySqList.init();
        System.out.println(init);
    }
}

相关文章

  • Java数据结构-栈

    1,Java中的栈 1)Java栈是一种特殊的线性表。栈:只能在一端进行push和pop操作eg:Stack线性表...

  • Java操作线性表

    首先定义线性表模型以及相关的操作 测试

  • 线性表学习总结 ( Java 语言版 )

    线性表 Java 语言版 综述: 线性表是其组成元素之间具有线性关系的一种线性结构。 对线性表的基本操作主要有:...

  • 第二章 线性表

    主要讨论线性结构 2.1 线性表的类型定义及基本操作 线性表的类型定义 线性表的基本操作

  • 二、栈和队列

    二、栈和队列 栈和队列都是线性结构,它们是操作受限的线性表,即它们的操作是线性表操作的子集。因此也可以用线性表在某...

  • 【数据结构】栈和队列之栈各种操作

    栈的定义 栈实际上也是线性表,只不过是一种特殊的线性表。其特殊性在于栈的基本操作是线性表操作的子集,他们的操作受限...

  • 数据结构知识点总结(更新ing)

    ⭐ 我的网站: www.mengyingjie.com ⭐ 1线性表 1.1线性表的基本操作 1.2线性表的顺序表...

  • 顺序存储结构的线性表

    线性表的顺序存储结构指的是用一段地址连续的存储单元依次存储线性表的数据元素。 取元素操作 插入操作 删除操作 顺序...

  • 数据结构——栈

    源码地址请点击此处 栈是线性表的一种衍生结构,是一种操作受限的线性表。在使用普通的线性表时,可以在任意位置进行操作...

  • 数据结构-线性表(顺序表和链表)

    大纲:理解线性表的逻辑结构掌握线性表的顺序存贮结构和链式存贮结构;掌握线性表基本操作的实现。了解线性表的应用。 线...

网友评论

      本文标题:Java操作线性表

      本文链接:https://www.haomeiwen.com/subject/kqaxuhtx.html