Bootstrap

数据结构-顺序表的顺序存储

定义:

  • 用一组地址连续的存储单元依次存储线性表中每个数据元素,这种存储结构称为线性表的顺序存储结构,用这种结构表示的线性表称为顺序表。

特点:

  • 用数据元素在计算机内物理位置相邻来表示线性表中数据元素之间的逻辑关系。

存储位置:

  • 线性表中第i个数据元素ai的存储位置

    在这里插入图片描述

  • 线性表的顺序存储结构为随机存储结构

  • 存储结构内存视图
    在这里插入图片描述

代码表示:

  • 顺序表的插入
	/**
     * 顺序表的插入
     *
     * @param arr   数组
     * @param pos   插入的位置
     * @param value 插入的值
     * @return
     */
    public static boolean listInsert(int[] arr, int pos, int value) {
   
        if (arr.length > MaxSize) {
   
            System.out.println("顺序表已满,无法继续插入数据!");
            return false;
        }

        if (pos < 1 || pos > arr.length + 1) {
   
            System.out.println("插入数据的位置无效,无法插入");
            return false;
        }

        // 因为在java中数组的大小不能动态变化的,所以只能使用新数组
        int[] newArr = new int[arr.length + 1];
        for (int i = 0; i < arr.length; i++) {
   
            newArr[i] = arr[i];
        }

        for (int i = newArr.length - 1; i >= pos; i--) {
   
            newArr[i] = newArr[i - 1];
        }
        newArr[pos - 1] = value;
        listTraverse(newArr);
        return true;
    }
  • 顺序表的删除
	/**
     * 顺序表的删除
     *
     * @param arr   数组
     * @param pos   删除的位置
     * @param value 删除的值
     * @return
     */
    public static boolean listDelete(int[] arr, int pos, int value) {
   
        if (arr.length == 0) {
   
            System.out.println("顺序表为空表,无法删除");
            return false;
        }

        if (pos < 1 || pos > arr.length) {
   
            System.out.println("删除的位置无效");
            return false;
        }

        for (int i = pos - 1; i <

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;