- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
应用与比较;顺序表和链表的比较;顺序表和链表的比较;顺序表和链表的比较;顺序表和链表的比较;线性表链式存储方式的比较;应用——图书信息管理系统;一元多项式可按升幂的形式写成:
Pn(x)=p0+p1xe1+p2xe2+…+pnxen
其中ei为第i项的指数(且0≤e1≤e2≤…≤en)
pi是指数ei的项的系数
;一元多项式的顺序存储表示(两种方法)
一元多项式的链式存储表示;一元多项式的顺序存储表示(方法1)
只存储该一元多项式各项的系数,每个系数所对应的指数项则隐含在存储系数的顺序表的下标中。
B(x)=8x+22x7-9x8;一元多项式的顺序存储表示(方法1)
采用这种存储方法使得多项式的相加运算的算法定义十分简单,只需将下标相同的单元的内容相加即可。
缺点:若多项式的非零项指数很高但非零项很少时,十分浪费存储空间。
R(x)=1+5x10000+7x20000
;一元多项式的顺序存储表示(方法2)
只存储非零项,此时每个非零项需要存储:
非零项系数
非零项指数
B(x)=8x+22x7-9x8
;一元多项式的顺序存储表示(方法2)
只存储非零项,此时每个非零项需要存储:
非零项系数
非零项指数
B(x)=8x+22x7-9x8
;顺序存储结构存在问题
存储空间分配不灵活
运算的空间复杂度高;一元多项式的链式存储表示
只存非零项,每一非零项由两部分构成(指数项和系数项)
用单链表存储表示的结点结构为;一元多项式的链式存储表示
一元多项式的单链表表示示意图;建立一元多项式链式存储的算法
算法思想
通过键盘输入一组多项式的系数和指数,用尾插法建立一元多项式的链表;
以输入系数0为结束标志;
并约定建立多项式链表时,总是按指数从小到大的顺序排列。;运算规则:两个多项式中所有指数相同的项的对应系数相加,若和不为零,则构成“和多项式”中的一项;所有指数不相同的项均复抄到“和多项式”中。;应用——两个一元多项式相加;算法思想:
若p→expq→exp,则结点p所指的结点应是“和多项式”中的一项,令指针p后移;
若p→expq→exp,则结点q所指的结点应是“和多项式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移;
若p→exp==q→exp,则将两个结点中的系数相加,当和不为零时修改结点p的系数域,释放q结点;若和为零,则和多项式中无此项,从A中删去p结点,同时释放p和q结点。
;应用——两个一元多项式相加;应用——两个一元多项式相加;应用——两个一元多项式相加;应用——两个一元多项式相加;应用——两个一元多项式相加;应用——约瑟夫环;著名犹太历史学家Josephus
在罗马人占领乔塔帕特后39个犹太人与Josephus及他的朋友躲到一个洞中
39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式
41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止
然而Josephus和他的朋友并不想遵从,Josephus要他的朋友先假装遵从,他将朋友与自己安排在第16个与第31个位置,于是逃过了这场死亡游戏
;约瑟夫问题是循环链表的一个典型应用,其描述如下:m个人围成了一圈,从其中任一个人开始,按顺时针顺序使所有人依次从1开始报数,报到n的人出列;然后使n之后的人接着从1开始报数,再次使报到n的人出列……如此下去,求算出列的顺序,及最后留下来的人的编号。
;将m与n设定为具体数字,使m=8,n=3模拟约瑟夫问题
;线性表中数据元素的类型可以为简单类型,也可以为复杂类型。
许多实际应用问题所涉的基本操作有很大相似性,不应为每个具体应用单独编写一个程序。
从具体应用中抽象出共性的逻辑结构和基本操作(抽象数据类型),然后实现其存储结构和基本操作。
;总结
您可能关注的文档
- 数据结构——基于Python语言(微课版) 课件 T1_C语言基础.pptx
- 数据结构——基于Python语言(微课版) 课件T1_绪论(什么是数据结构).pptx
- 数据结构——基于Python语言(微课版) 课件T2_线性表(顺序表).pptx
- 数据结构——基于Python语言(微课版) 课件T3_线性表(单链表).pptx
- 数据结构——基于Python语言(微课版) 课件T4_线性表(双向链表和循环链表).pptx
- 数据结构——基于Python语言(微课版) 课件T7_栈与队列(队列).pptx
- 数据结构——基于Python语言(微课版) 课件T10_数组与广义表(矩阵).pptx
- 数据结构——基于Python语言(微课版) 课件T11_数组与广义表(广义表).pptx
- 数据结构——基于Python语言(微课版) 课件T12_基于线性表的查找算法.pptx
- 数据结构——基于Python语言(微课版) 课件T13_基于线性表的排序算法.pptx
- 数据结构——基于Python语言(微课版) 课件T16_树(遍历与应用).pptx
- 数据结构——基于Python语言(微课版) 课件T17_树(转换、构建与线索化).pptx
- 数据结构——基于Python语言(微课版) 课件T18_基于树的查找算法.pptx
- 数据结构——基于Python语言(微课版) 课件T19_基于树的排序算法.pptx
- 数据结构——基于Python语言(微课版) 课件T23_计算式查找法.pptx
原创力文档


文档评论(0)