- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《算法与数据结构讲义二数据结构——线性表
第十二课 数据结构——线性表
12.0 数据结构概述
12.1 线性表
12.2 栈
12.3 队列
12.4 串 12.0 数据结构概述
是否掌握数据结构,是区分一个程序设计人员水平高低的标志,也是在高中阶段信息学竞赛中,能否获得一等奖的分水岭。
无论在国内还是国外,《数据结构》一直是大学计算机专业的一门专业基础课,但是,对于学习程序设计的中学生,在学习完一门程序设计语言后,为了学习更多的算法以进一步提高编程能力,《数据结构》就成了必须突破的对象。
掌握《数据结构》的目的,是充分利用数据之间的内在联系,降低数据的检索、插入、删除、更新、排序等操作的时间复杂度,从而提高算法的效率。从而,避免了大量的穷举式操作。
什么是数据结构:
简而言之,就是“数据+结构”。
数据:数据是客观事物的符号表示。是我们在解决问题的过程中,对客观事物对象所进行的定量、定性的数值或文字表达,以便于我们输入计算机中进行模拟、计算、处理。例如:我们要对这次期中考试成绩进行总分计算、名次排序、优秀率等统计,就需要将考试结果用分数量化,并加上姓名等信息后,输入到计算机中进行处理,我们将所有输入的这些内容,成为一个“期中考试成绩数据”。
数据元素、数据项:
数据项:数据中补课分割的最小单元。例如:上例中的某个学生的语
文成绩。
数据元素:是数据的基本单位,是由若干个数据项组成。例如:上例
中某一个学生的考试各科成绩。
结构:数据中各数据元素之间的关系,分为逻辑结构和物理结构。
逻辑结构:数据之间的内在关系。例如:一家人参加旅行团去某地旅游,
在旅行车上,无论他们是否坐在一起,他们之间的父子、母子
等内在关系依然存在。
物理结构:数据在计算机中的存储方式,又称为存储结构。
物理结构的种类:顺序存储、链式存储、索引存储、散式存储。
顺序存储:把逻辑相邻的结点存储在物理相邻的存储单元内
链式存储:结点之间的逻辑关系由附加指针来表示。
索引存储:存储结点信息的同时,建立索引表。
散列存储:按结点的关键字直接计算出存储地址。
物理结构与逻辑结构之间的关系:
逻辑结构是具体问题抽象出来的数学模型,物理结构是逻辑结构的计算机语言的实现。
有什么样的逻辑结构,就应该选择相应的物理结构。
选择的物理结构要方便基于逻辑结构上的数据运算。
物理结构不等同于逻辑结构,反之,逻辑结构也不等于物理结构,因此,对数据结构的设计,不仅要进行逻辑结构的设计,也还要进行物理结构的设计。
数据的运算:各种逻辑结构上的运算集合。常用的有:检索、插入、删除、
更新、排序。
数据结构的分类:
序号 名称 结构特点 常用物理结构 1 集合 无任何关系的一组数据
例如:互不相识的若干人乘坐同一辆公交车。 顺序
索引 2 线性表 元素间存在严格的一对一的关系
例如:按顺序排列的26个英文字母,B前面只能是A,后面只能是C。 顺序
散列 3 树 元素间严格的一对多关系
例如:磁盘中的文件夹和文件。 顺序
索引、散列 4 图 元素间为多对多的关系
例如:一个班级同学之间的关系。一个人可以有多个朋友,也可以是多个人的朋友。 顺序
索引
12.1 线性表
一个线性表是n个数据元素的有限序列。线性表是最常用且最简单的一种数据结构。
线性表的结构特点
在数据元素的非空有限集中,
(1)存在唯一的一个被称做“第一个”的数据元素;
(2)存在唯一的一个被称做“最后一个”的数据元素;
(3)除第一个之外,集合中的每个数据元素均只有一个前驱;
(4)除最后一个之外,集合中每个数据元素均只有一个后继。
a1 …… ai-1 ai ai+1 …… an ai是ai+1的直接前驱元素,ai+1是ai的直接后继元素。
线性表中元素的个数n定义为线性表的长度,为0时称为空表。在非空表中的每个数据元素都有一个确定的位置。ai是第i个元素,把i称为数据元素ai在线性中的位序。
线性表的操作:
求长度:L:=a[0];
清空:a[0]:=0;
判断线性表是否为空:(a[0]=0)=true
线性表存在且未满:a[0]maxn
插入操作:将b插入到线性表中第k个的前面
if a[0]maxn then
begin
for i:=a[0] downto k do a[i+1]:=a[i];
a[k]:=b;
inc(a[0]);
end;
删除操作:删除线性表中第k个元素
for i:=k to a[0]-1 do a[i]:=a[i+1];
dec(a[0]);
取表元:去除表中第k个元素
c:=a[k];
按值查找:在表中查找值为b的元素,返回序号。如未找到,返回0
function find(b:integer) :integer;
begin
find:=1;
您可能关注的文档
最近下载
- 中重度痤疮的治疗方案——基于中国痤疮治疗指南(2023修订版).docx VIP
- 2024-2030年中国随身MIFI市场发展趋势与前景动态分析研究报告.docx
- GB50660-2024大中型火力发电厂设计规范.pptx VIP
- 生物物理学课件集锦.ppt VIP
- 2022成都东部集团有限公司招聘试题及答案解析.docx VIP
- DB22T 5016-2019 市政工程资料管理标准.docx VIP
- 下料工考试题库及答案.doc VIP
- 招投标培训(完整版)课件.pptx VIP
- 2024广西高质量共建“一带一路”谱写人类命运共同体新篇章公需课答案.docx VIP
- 全网最齐全的水电定位注意事项.docx VIP
文档评论(0)