- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * 顺序表应用的例题 案例 作为课程组长,段老师需要将几个老师按成绩排好的成绩表合成一个成绩表,请问他应该怎样操作? 算法动手做 准备一张白纸,裁成10张小纸条 在每张纸条写上不同的号码,代表不同的成绩,分成两列排好序。 规则:每次只能移动一张纸条。该怎样将两列纸条排成一列 要求:使用“从XXX开始,向XXX方向,逐个XXX”这种格式的语言来描述动手做的过程 50 34 66 58 67 70 80 78 88 80 顺序存储的线性表 例 例:合并两个线性递增表,合并后的表仍然是递增的。 功能:表的合并 输入:两个线性表 输出:合并后的表,保持递增性。 算法分析 例:合并两个线性递增表,合并后的表仍然是递增的。 算法实现分析 利用图形帮助分析 2 20 22 25 40 1 10 14 21 23 1 2 10 14 20 21 22 23 25 40 30 30 算法分析 例:合并两个线性递增表,合并后的表仍然是递增的。 算法实现分析 1、将两个表的元素进行逐个比较(从表头开始) 2、将较小的一项放在新的合并表内 3、较大的保留,较小表中的取下一项 4、最后当一个表的全部节点都放在合并表里后,将另一个表的剩余节点放进合并表。 table_type *merge(T_a, T_b, T_m){ int i_a , i_b , i_m; i_a = 0 , i_b = 0; i_m = 0; while(i_a T_a-length i_bT_b-length){ } if(T_a-data[i_a] = T_b-data[i_b]) i_a = i_a + 1; else i_b = i_b + 1; 三个指针 1)将两个表的元素进行逐个比较 2)将较小的一项放进新的合并表内 4)最后当一个表的全部节点都放在合并表里后,将另一个表的剩余节点放进合并表。 3)较大的一项保留,较小的取下一项 T_m-data[i_m] = min(T_a-data[i_a] , T_b-data[i_b]); i_m = i_m + 1; while(i_a T_a-length){ T_m-data[i_m] = T_a-data[i_a]; i_m = i_m + 1; i_a = i_a + 1; } while(i_b T_b-length){ T_m-data[i_m] = T_b-data[i_b]; i_m = i_m + 1; i_b = i_b + 1; } T_m-length = i_m –1; } 顺序存储的线性表 例 补充和完善 对长度越界的判断 其它更高效的算法实现? 思考: 1、本算法是利用了第三个表才完成的,如果要求只能在已有的两个表之一完成,该如何进行? 2、如果输入的两个线性表不是递增的,如何设计算法? 作业 教材P65第9题 请学有余力的同学完成:如果输入的两个线性表不是递增的,如何设计算法? * * * * * * * 总结、提炼关键词:按名单“逐个”通知 * 提炼,for循环,从前至后逐个访问 * * 提炼出关键词,从教师代表开始逐个向后挪动,让李校长坐到中间 * * 提炼关键词“从ai开始逐个向后,每个元素向后移动”和“从an开始逐个向前,每个元素向后移一格” * * * * * * 提炼出关键词,从教师代表开始逐个向后挪动,让李校长坐到中间 * * * * * 段景山 段景山 软件技术基础 制作 主讲 段景山 段景山 线性结构 第二章 线性数据结构 线性表 队列 栈 串 二维数组 1、线性表 元素及元素之间的关系为线性 线性表: (1)有且仅有一个开始节点(该节点只有一个后继节点,没有前趋节点) (2)有且仅有一个结束节点(该节点只有一个前趋节点,没有后继节点) (3)其余节点有且仅有一个前趋和一个后继 k1 k2 k3 k4 k1 k2 k3 顺序存储的线性表 1.1、用数组实现线性表(顺序存储、顺序表) 线性表元素:a1、a2、a3、a4.... 数组元素: a[0]、a[1]、a[2]、a[3] 线性关系: a1 a2 a3 a4 数组下标大小 顺序存储的线性表 1.1.1、定义 元素类型 线性表名称[ 线性表长度 ] 例 int data[ max_length ]; 以 a0开始的线性表-- a0 、a1、a2、a3…… a i data[ i ] 以a1开始的线性表-- a1、a2、a3、a4…… data[ i – 1 ] a i 顺序存储的线性表 更进一步的定义(Advanced) typedef struct li
您可能关注的文档
最近下载
- 肯尼亚建筑市场行业报告.pptx
- 浙江杭州余杭交通集团有限公司招聘笔试题库2023.pdf VIP
- 人工胆囊、人工胆囊设备和人工胆囊在胆囊手术中的应用.pdf VIP
- 重力与弹力高一上学期物理人教版2019必修第一册+.pptx VIP
- 胃癌的诊治现状与进展.pptx VIP
- 数控压装压力机 第2部分:技术条件.docx VIP
- 【课件】匀变速直线运动速度与时间的关系+课件-高一上学期物理人教版(2019)必修第一册.pptx VIP
- XX医院职能部门监管手术、麻醉授权管理督导、检查、总结、反馈及持续改进记录表.pdf VIP
- 电力调度数据网络接入技术规范及网络拓扑图.doc VIP
- ZZGA高频开关整流器使用说明书.doc
文档评论(0)