- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法與数据结构讲义二(数据结构线性表)
第十二课 数据结构——线性表
12.0 数据结构概述
12.1 线性表
12.2 栈
12.3 队列
12.4 串 12.0 数据结构概述
是否掌握数据结构,是区分一个程序设计人员水平高低的标志,也是在高中阶段信息学竞赛中,能否获得一等奖的分水岭。
无论在国内还是国外,《数据结构》一直是大学计算机专业的一门专业基础课,但是,对于学习程序设计的中学生,在学习完一门程序设计语言后,为了学习更多的算法以进一步提高编程能力,《数据结构》就成了必须突破的对象。
掌握《数据结构》的目的,是充分利用数据之间的内在联系,降低数据的检索、插入、删除、更新、排序等操作的时间复杂度,从而提高算法的效率。从而,避免了大量的穷举式操作。
什么是数据结构:
简而言之,就是“数据+结构”。
数据:数据是客观事物的符号表示。一个线性表是n个数据元素的有限序列。线性表是最常用且最简单的一种数据结构。在数据元素的非空有限集中,
(1)存在唯一的一个被称做“第一个”的数据元素;
(2)存在唯一的一个被称做“最后一个”的数据元素;
(3)除第一个之外,集合中的每个数据元素均只有一个前驱;
(4)除最后一个之外,集合中每个数据元素均只有一个后继。
ai是ai+1的直接前驱元素,ai+1是ai的直接后继元素。
线性表中元素的个数n定义为线性表的长度,为0时称为空表。在非空表中的每个数据元素都有一个确定的位置。ai是第i个元素,把i称为数据元素ai在线性中的位序。
c:=a[k];
按值查找:在表中查找值为b的元素,返回序号。如未找到,返回0
function find(b:integer) :integer;
begin
find:=1;
while (a[i]b)and(find=a[0]) do inc(find);
if finda[0] then find:=0;
end;
线性表应用实例:
顺序表倒置:算法思路:把第一个元素与最后一个元素交换,把第二个元素与倒数第二个元素交换。一般地,把第i个元素与第n-i个元素交换,i的取值范围是0到n/2(n为顺序表的长度)。procedure invert;
var i,tmp:integer;
begin
for i:=1 to a[0] div 2 do
begin
tmp:=a[n-i+1];
a[n-i+1]:=a[i];
a[i]:=tmp;
end;
end;
两顺序表合并:
procedure merger(a,b:var;var c:arr);
var p1,p2,p,i:integer;
begin
fillchar(c,sizeof(c),0);
p1:=1; p2:=1; p:=0;
while (p1=a[0])and(p2=b[0]) do
if a[p1]b[p2] then
begin
inc(p); c[p]:=a[p1]; inc(p1);
end else
begin
inc(p); c[p]:=b[p2]; inc(p2);
end;
if p1=a[0] then
for i:=p1 to a[0] do
begin
inc(p); c[p]:=a[i];
end;
if p2=b[0] then
for i:=p2 to b[0] do
begin
inc(p); c[p]:=b[i];
end;
c[0]:=a[0]+b[0];
end;
构造包含已知顺序表中所有值不相同的数据元素已知一个存储整数的顺序表试构造顺序表b,要求顺序表b中只包含顺序表a中所有值不相同的数据元素。算法思路:先把顺序表a的第1个元素赋给顺序表b,然后从顺序表a的第2个元素起,每一个元素与顺序表b中的每一个元素进行比较,如果不相同,则把该元素附加到顺序表b的末尾。procedure struc(a:arr;var b:arr);
var i:integer;
begin
b[0]:=1; b[1]:=a[1];
for i:=2 to a[0] do
您可能关注的文档
- 算法分析編程学到现在才真正到了戏.doc
- 算法分析與复杂性理论实验报告凸包问题.doc
- 算法分析與复杂性理论实验报告动态规划.docx
- 算法分析與复杂性理论实验报告基本排序.docx
- 算法分析與复杂性理论实验报告最大流问题.docx
- 算法分析與复杂性理论实验报告求最近点对的问题.doc
- 算法分析與复杂性理论小论文.docx
- 算法分析與设计(答案).doc
- 算法分析與设计复习资料2.doc
- 算法分析與设计-动态规划和分治递归.doc
- 2025年天津职业大学单招职业适应性测试题库及参考答案.docx
- 2025年安徽冶金科技职业学院单招(语文)测试题库汇编.docx
- 2025年天津铁道职业技术学院单招(语文)测试题库完整版.docx
- 2025年天津工艺美术职业学院单招职业技能测试题库及参考答案一套.docx
- 2025年宁波大学科学技术学院单招综合素质考试题库完整.docx
- 2025年宁夏银川市单招职业适应性测试题库及答案一套.docx
- 2025年安康职业技术学院单招(语文)测试题库审定版.docx
- 2025年威海职业学院单招(语文)测试模拟题库一套.docx
- 2025年天津电子信息职业技术学院单招职业技能测试题库及答案参考.docx
- 2025年宁夏固原地区选调生考试(行政职业能力测验)综合能力题库完整.docx
文档评论(0)