[数据结构学习] 第三章 线性表(1)

本章主要介绍线性表的定义,抽象数据类型,两种存储结构(顺序和链式)及其操作等。线性表是数据结构中最常用,最简单的一种结构。

1 定义

1.1 基本定义

  • 线性表(list):是零个或多个数据元素的有限序列。
  • 线性表长度 : 线性表中元素个数
  • 空表:长度为0的线性表
  • 位序:某个元素在线性表中的位置排序,比如 a i a_i ai的位序为 i i i
  • 线性表图示
1.2 特点
  • 有序性,即序列中元素之间是有顺序的,
  • 有限性,元素个数有限

2 抽象数据类型

数据data + 操作 operations (初始化,判断空表,清空列表,按位置检索元素,定位元素,插入,删除,长度/元素个数)
在这里插入图片描述

在这里插入图片描述

3 线性表的顺序存储结构

3.1 顺序存储的基本概念
  • 线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。
  • 可以用C语言中一维数组实现顺序存储结构,把第一个数据元素存到数组下标为0的位置中,接着把线性表相邻的元素存储在数组中相邻的位置。
  • 线性表的顺序存储的结构代码
    在这里插入图片描述
  • 数组长度指存放线性表的存储空间的长度,线性表的长度是线性表数据元素的个数。前者大于等于后者。
  • 地址计算方法
    L O C ( a i ) = L O C ( a 1 ) + ( i − 1 ) ∗ c LOC(a_i)=LOC(a_1)+(i-1)*c LOC(ai)=LOC(a1)+(i1)c
    其中, c c c是单个数据元素占据的存储单元。因为线性表的存储时间性能为 O ( 1 ) O(1) O(1), 所以称为随机存储结构
3.2 顺序存储结构的操作
3.2.1 获得元素操作

即返回第i个位置的元素值返回,即数组下标为i-1的元素在这里插入图片描述
在这里插入图片描述

3.2.2 插入操作

思路:先判断插入位置和长度,移动后面元素,插入,表长加一
在这里插入图片描述
代码实现在这里插入图片描述

3.2.3 删除操作

思路:在这里插入图片描述
代码:
在这里插入图片描述在这里插入图片描述
存、读数据的时间复杂度为 O ( 1 ) O(1) O(1),删除和插入时间复杂度为 O ( n ) O(n) O(n)

3.3 顺序存储结构的优缺点

优点:1)无需表示表中元素之间关系,而增加额外存储空间, 2)快速存取
缺点:1)插入和删除需要移动大量元素,2)当线性表长度变化太大,难以确定存储空间的容量,3)存储空间“碎片化”

参考:《大话数据结构》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值