用数组实现线性表详解代码

用数组实现线性表,就是将数据都存放到数组中,然后写函数实现线性表的基本操作。

具体数组结构表示线性表如图所示:

数组表示线性表
数组表示线性表

数组实现线性表基本操作代码:

  • 定义结构,用于存取线性表中的元素。

  • 初始化线性表:

  • 查找元素

    平均查找次数为(n+1)/2。最好情况,第一个找到,最坏情况最后一个找到。
  • 返回K位序元素
  • 插入元素

平均移动次数为n/2。最好情况,移一个元素,最坏情况移n个元素,时间复杂性O(n);

  • 删除操作

    平均移动次数为(n-1)/2,时间复杂性O(n);


从以上用数组实现线性表,可以分析出其优缺点。

数组实现线性表优点:

      1. 表中各元素之间的逻辑关系,不用添加额外的存储空间。
      2. 能够高速的存取表中任一位置的元素,(数组直接用下标[]操作符)。

数组实现线性表缺点:

      1. 插入和删除操作须要移动大量的元素,比如要删除第1个元素,就要将后面所有元素全部向前移动一次
      2. 动态性不好,线性表长度一直变化时,用数组实现效率会降低。(比如线性表长度从10万变成20万,就先要申请20万元素的内存,再将10万元素全部拷贝过来)