跳到主要内容

数组

线性结构​

  • 线性结构(Linear List)是由 n (n>=0) 个数据元素(a[0],a[1],a[2]…,a[n-1])组成的有限序列
    • 数据元素的个数 n 定义为表的长度,表里没有一个元素时称为空表
    • 将非空的线性表记作(a[0],a[1],a[2]…,a[n-1] 对应于每个元素)
    • 数据元素 a[i](0 ≤ i ≤ n - 1)是一个抽象符号,其具体含义在不同情况下可以不同
  • 常见的线性结构:
    • 数组结构
    • 栈结构
    • 队列结构
    • 链表结构

数组结构​

  • 在计算机科学中,数组数据结构 是由相同类型的元素的集合所组成的数据结构,分配一块连续的内存来存储

    • 利用元素的索引index 可以计算出该元素对应的存储地址
    • 是几乎每种编程语言都会提供的一种原生数据结构
    • 可以借助数组结构来实现其他的数据结构,比如栈、队列等
    数组结构
  • 数组设计之初是在形式上依赖内存分配而成的,所以必须在使用前预先请求空间,这使得数组有以下特性

    • 请求空间以后大小固定,不能再改变
    • 在内存中有空间连续性的表现,中间不会存放其他程序需要调用的数据,为此数组的专用内存空间
    • 在旧式编程语言中(如有中端语言之称的 C),程序不会对数组的操作做边界判断,也就有潜在的越界操作的风险
  • 因为简单数组强烈依赖电脑硬件之内存,所以不适用于现代的程序设计

    • 许多编程语言均提供了更高级的数据结构:如 ArrayList 、Vector 等动态数组
  • JavaScript 中默认内置了 Array — 数组

    // 创建数组
    const arr = new Array();

    // 插入元素
    arr.push(2);
    arr.shift(1);

    // 删除元素
    arr.pop();
    arr.splice(0, 1);