线性表的定义和基本操作

1.知识总览

知识总览

2.线性表的定义

线性表的定义

用大白话的方式来讲,所谓线性表就是
各个数据元素 它们之间的逻辑关系
逻辑结构是这种一条线的结构
就是被穿到一起。
数据元素之间有这样的前后关系
各个数据元素
它们之间的逻辑关系
逻辑结构
是这种一条线
被穿到一起。
用严格数学意义上来讲
线性表是具有(相同)数据类型的
n(n>=0)个数据元素的有限序列
其中n为表长
当n=0时
线性表是一个(空表)。
若用L命名线性表
则其一般表示为
L=(a1,a2,...,an)。
那我们在这个定义中需要注意这样的
几个点
1.线性表当中的各个数据元素,
它们的类型都是相同的。
比如你的这个数据元素,
它是int型的话
那么其他的这些数据元素,
它们也都需要是int型。
当然
你也可以自己定义某一种结构类型
比如struct A 那你自己定义的
这个结构类型作为数据元素的数据类型。
所有数据元素的数据类型都相同
这一点意味着各个数据元素
它们所占的存储空间是一样大的
这个特性可以帮助计算机快速地找到
某一个具体的数据元素。
2.需要注意的地方是线性表
它是一个序列
那所谓的序就是只有次序
各个数据元素之间有这样的先后次序
这也很好理解
3.需要注意的点
线性表中的数据元素数量是有限的。
比如举一个反例
如果说所有的整数按照递增的次序来排列
那这样的数据结构
它既满足了各个数据元素相同
这个特性
同时也满足了各个数据元素之间
有次序这样的特性
但是由于这儿提到的是所有的整数
而整数的数量它是无限的
因此它不能算是一个线性表
我们描述线性表当中的各个数据元素的时候
这个角标是从1开始的
a1表示这个线性表当中的第一个数据元素
a2是第二个数据元素
...
ai是表示第i个数据元素
那所谓的第几个我们用一个专业术语描述
叫做数据元素在线性表中的位序
然后 一个线性表中的第一个元素
我们称为表头元素
最后一个元素称为表尾元素
除了线性表当中的第一个元素之外
其他的所有元素都可以找到一个直接前驱
也就是排在它们前面的数据元素
这就是前驱的概念
而除了最后一个元素之外
其他的每个元素都可以直接找到
一个它的直接后继
这是后继的概念
那这里要再次强调位序这个概念
位序是从1开始的
但是我们在程序中定义一个数组的时候
数组下标是从0开始的

线性表的定义

不知道大家看到线性表这个术语的时候
这个表字会让大家联想到什么
当我看到表这个字的时候
我在刚开始学的时候
会觉得说
为什么这样的一个线性结构的关系要把它称为表呢
可以从线性表的英文术语当中找到答案
线性表的英文叫linear list
那linear其实就是线型的
直线的
线状的
它是由line这个单词变来的
那line就是线
比如大家喜欢看的天线宝宝
就是sky line baby 对吧
list这个单词
它有列表的意思
比如代办事项是todoList
它就是由一个一个的元素组成的
这就和我们线性表的样子对应上了
所以我觉得为什么要翻译为线性表呢
可能就是因为这个list
它本来就有列表的含义
再换一个角度理解
如果说这样的一个数据元素
它里边包含了多个数据项的话
那么从形式上看
它保存的内容不就是这样的一张表吗
所以为什么这种数据结构它叫线性表
而不是线性串之类的原因

3.线性表的基本操作

线性表的基本操作

需要实现的两个基本操作是
1.初始化一个线性表
2还有销毁一个线性表
这两个基本操作
实现了线性表从无到有和从有到无这样的两个过程
主要做的工作是分配内存空间和释放内存空间
当然还需要更改一些必要的信息
那接下来还需要实现的基本操作是插入和删除
这个部分是函数名
括号里面的部分是函数的参数
那这儿指明了三个参数
第一个参数L指的是线性表
第二个参数i指的是我们要在第i个位置上插入元素
第三个元素e指的是我们具体要插入的这个元素的值
1.插入操作
在表L中的第i个位置上插入指定元素e
2.删除操作
删除表L中第i个位置的元素
并用e返回删除元素的值
3.接下来还需要实现的基本操作是
按值查找和按位查找
所谓的按值查找指的是
可以给定一个元素e的值
然后在线性表L当中查找这个线性表当中
有没有哪个数据元素和我们传入的这个参数e是相同的
这是按值查找
那按位查找
按位查找指的是
我们传入一个参数i
这个i指明了我们想要找的是线性表当中的第几个元素
最后
我们还可以定义一些其他的常用操作
比如可以定义一个函数Length(L)传入L
然后会返回这个线性表的长度
也可以定义PrintList(L)按前后顺序输出线性表L
的所有元素值
empty(L)判空操作
若L为空表
则返回true,否则返回false
那这个地方要提几个点
第一在我们学习任何一个数据结构的时候
其实基本上对于数据结构的操作无非就是
创建 销毁 或者 增删改查
重要:如果你对参数的修改结果需要带回来的话
那么你就需要传入这种引用型的参数

线性表的基本操作

线性表的基本定义

在了解了我们需要实现的哪些基本操作之后
我们来探讨一个问题
我们为什么需要实现对数据结构的基本操作呢
1.现在的项目一般都是大型的项目
都需要一个很大的团队来合作的编程
所以定义的数据结构要让别人能够很方便的使用(封装)
2.将常用的操作/运算封装成函数,避免重复工作,降低出错风险

为什么要实现对数据结构的基本操作

4.重要考点

逻辑结构

https://ze1sure.gitee.io/blog/
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值