- 1、本文档共81页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 例2-5 插入一个结点: 线性表的链式存储结构 顺序表和链表的比较 线性表的应用——多项式相加与Josephus问题 多项式表示 设一元n次多项式的通用形式为Pn(x)= + +… + ,其中pi是指数为ei的项的非零系数,且满足0≤e1<e2<…<em=n,上述情况可考虑采用一个长度为m且每个元素有两个数据项(系数项和指数项)的线性表Pn(x):((p1, e1), (p2, e2), …, (pm, em))来存储,这样将大大节省空间。 在实际应用程序中,若只对多项式进行“求值”等不改变多项式的系数和指数的运算,则采用类似于顺序表的顺序存储结构即可,否则应采用链式存储表示。本节将主要讨论如何利用线性链表的基本操作来实现一元多项式的运算。 线性表的应用——多项式相加与Josephus问题 由上图中的两个链表表示的多项式相加得到的“和多项式C”链表如下图所示。线性链表类型适用于一般的线性表,而表示一元多项式的应该是有序链表。 线性表的应用——多项式相加与Josephus问题 多项式的类定义: 线性表的应用——多项式相加与Josephus问题 线性表的应用——多项式相加与Josephus问题 多项式类的几种构造函数以及析构函数的定义: 线性表的应用——多项式相加与Josephus问题 线性表的应用——多项式相加与Josephus问题 多项式相加 多项式相加算法: 线性表的应用——多项式相加与Josephus问题 例2-6 Josephus问题,设有n个人围坐一圈。从第s人开始进行1到m报数,数到第m个人出列。然后,再从出列的下一个人重新开始报数,数到第m个人再出列。如此反复,直到所有的人全部出列为止。现要求按出列次序得出n个人的顺序表。现以n=8,s=1,m=4为例,用图说明报数出列的过程,如图所示。图中用s1作为浮动的指针,指向每次报数的起始位置。小圆圈内的数字为报数出列的人员,由图得到n个人按次序报数出列的人员顺序为④⑧⑤②①③⑦⑥。 例2-6 例2-6 为了用计算机求解,设想有一组1~n的整数作为待报数的序列。将它们置于数组p中。当p[i]报数出列时,为了节省空间,可将p[i]从数组中删除并暂存在另一个存储单元w中,且将p[i+1]~p[n]都向前移动一个位置。再将原保留在w中的p[i]值置于p[n]中,如下图所示;下次再对剩下的n–1个元素进行上述操作,再将报数出列的元素置于p[n–1]中;……;如此反复,直至只剩下一个元素时,就将其保留在p[1]中原处。此时p中保留了报数出列的序列元素的逆序,最后再将p数组中的元素逆转,即得到了按次序报数出列人员的顺序表。 例2-6 如何确定每次报数出列的位置?由上图可见,由于元素出列后,后面的元素都要向前挪动一个位置,因此,本次报数的出列位置也就是下次报数的起始位置,s1有双重含义。因为报数是首尾连续进行的,所以可用取模的方法;由这次报数的起始位置推算得到下次的报数位置,即是本次报数的出列位置。设i为每次参加报数的人数,则列出位置可由下式推算而得:s1←(s1+ m–1) Mod i Josephus问题算法如下。①赋初值s1←s。② 报数出列,循环i以–1为步长,从n到2重复执行:(a)求“出列”位置s1←(s1+m–1)Mod i; if s1=0 then s1←i;(b)出列w←p[i];(c)元素前移:循环j以1为步长,从s1到i–1重复执行;p[j]←p[j+1];(d)令出列元素于报数序列之尾p[i]←w;③逆转出列的序列,循环k以i为步长,从i到?i/2? 重复执行:(a)w←p[k];(b)p[k]←p[n–k+1];(c)p[n–k+1]←w。(注:?i/2? 为不大于i/2的最大整数。)④输出已出列的序列,算法结束(具体程序请读者自己完成)。 本 章 总 结 学习要点 本章主要介绍线性表的概念及其逻辑结构形式定义;顺序和链式两类存储结构的描述及实现方法;在线性表的顺序和链式两类存储结构上,如何进行数据元素的插入、删除、定位、表的归并、集合等基本运算,线性表顺序与链式实现的时空性能比较,以及用线性表表示一元多项式及其加法运算等内容。主要学习要点如下:①线性表的概念、形式定义、线性结构的定义;②顺序表与各种链表的优缺点及其适用场合;③顺序表、单链表、循环链表的组织方法和实现插入、删除、定位等基本运算的算法;④在各种链表上进行算法设计的基本技能;⑤线性表的顺序实现与
您可能关注的文档
- 2014年《Java Web应用开发技术实用教程》-王红第1章 JSP概述.ppt
- 2014年《Java Web应用开发技术实用教程》-王红第3章 JSP隐含.ppt
- 2014年《JavaWeb基础》第九讲——AJAX.ppt
- 2014年《Java就业培训教程》_张孝祥.ppt
- 2014年《java语言程序设计》第4章.ppt
- 2014年《java语言程序设计》第5章.ppt
- 2014年《java语言程序设计》第6章.ppt
- 2014年《Java语言程序设计-基础篇》.ppt
- 2014年《Oracle 9i基础教程》第2课数据库基础知识.ppt
- 2014年《Oracle 10g管理及应用》-第十一章 数据库的备份与恢.ppt
- 执业药师之《药事管理与法规》检测卷讲解含答案详解(最新).docx
- 执业药师之《药事管理与法规》全真模拟模拟题及答案详解(全国通用).docx
- 2025年执业药师之《西药学综合知识与技能》模拟试题附参考答案详解(突破训练).docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库含答案详解(培优a卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题精选附答案详解(名师推荐).docx
- 执业药师之《药事管理与法规》强化训练模考卷带答案详解.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺测试卷包附参考答案详解(b卷).docx
- 2025年执业药师之《西药学综合知识与技能》模考模拟试题及参考答案详解(夺分金卷).docx
- 2025年执业药师之《西药学综合知识与技能》真题含答案详解【b卷】.docx
- 2025年执业药师之《西药学综合知识与技能》考前冲刺模拟题库带答案详解(b卷).docx
最近下载
- 贵州省事业单位人员聘用合同书.doc VIP
- 4.建筑施工企业项目负责人安全生产考核合格证书样本.pdf VIP
- 贵州省事业单位人员聘用合同书范本.docx VIP
- 皮带接头硫化上.pptx VIP
- 陕西省事业单位合同5篇.docx VIP
- 贵州省事业单位人员聘用合同书(合同范本).pdf VIP
- SYT 4201.2-2019 石油天然气建设工程施工质量验收规范 设备安装工程 第2部分:塔类.docx VIP
- SYT 4201.4-2019 石油天然气建设工程施工质量验收规范设备安装工程 第4部分:炉类.docx VIP
- 解读2021新安全生产法课件PPT(内容完整).pptx VIP
- SY_T 4201.3-2019 石油天然气建设工程施工质量验收规范 设备安装工程 第3部分:容器类.docx VIP
文档评论(0)