[理学]数据结构2-2线性表.pptVIP

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[理学]数据结构2-2线性表

作业: 例2.14 多项式的算术运算已经成为线性表处理的另一个典型问题,本部分仅讨论多项式相加运算,作为线性表应用的一个例子。 1. 一元多项式与线性表的关系 假设有两个一元多项式: Pn(x) = p0 + p1x1 + p2x2 +…+ pnxn 其 n+1 个系数在计算机中可以表示为: P = (p0 , p1 , p2 , … , pn) 每一项的指数 i 隐含在其系数 pi 的序号里。 假设 Qm(x) 是一元 m 次多项式,同样可用线性表 Q 表示: Q = (q0 , q1 , q2 , … , qm) 规定 mn ,则两个多项式相加的结果为:R0 = Pn(x) + Qm(x), 可用线性表 R 表示: R = (p0 + q0 , p1 + q1 , p2 + q2 , … , pm + qm , pm+1 , … , pn) 特殊的多项式: S(x) = 1 + 5x14 + 9.8x1000 该多项式的最高次数虽然达到了1000, 但只有三个非零系数。若将系数为 0的全部补齐,则需要一个长度为 1001 的线性表来表示,用顺序存储需 1001 个位置,势必造成大量空间的浪费及运行速度的降低。 S(x) = ((1,0),(5,14),(9.8,1000)) 即线性表中的数据元素是一个 (实数,整数) 对,仍然构成合法的线性表。 两个一元多项式进行加法运算时经常出现数据项的增加和减少,如有下面两个多项式: P17 = 7 + 3x +9x8 + 5x17 和: Q8 = 8x +22x7 - 9x8 显然使用顺序存储会带来很大麻烦,因此多项式的线性表示常采用链表形式 2. 一元多项式线性表表示的改进 上面的一元多项式 S 表示为: 3. 结点结构的定义 结点结构图示: 实数 整数 指针域 数据域 表头: L -1 指数部分的值 上述多项式 P 和 Q 的表示为: P17 = 7 + 3x +9x8 + 5x17 Q8 = 8x +22x7 - 9x8 P -1 7 0 3 1 9 8 5 17 ∧ Q -1 8 1 22 7 -9 8 ∧ 在这种表示中,规定各结点按指数递增的顺序排列。 结点结构的定义: type struct lnode { float coefficient; int exponent; struct lnode *next; }; 4. 多项式相加算法 已知多项式: P -1 7 0 3 1 9 8 5 17 ∧ Q -1 8 1 22 7 -9 8 ∧ 求得结果S: 将 Q 加到 P 上或将 P 加到 Q 上,前者其过程为: S的开始指针 11 若 P 加到 Q 上,过程为: P -1 7 0 3 1 9 8 5 17 ∧ Q -1 8 1 22 7 -9 8 ∧ 开始指针 以后过程同上 算法的关键步骤: 将 Q 加到 P 上,即结果的开始指针与 P 相同 循环扫描两个线性表中的每个结点,直到每个结点的指针域均为空结束; 每指向一对结点,则比较其指数部分的值: p-exponent q-exonent: P 继续向下移动指针 p-exponent q-exonent: Q 的当前结点连入 P, Q 指针下移一位 p-exponent = q-exonent: 先相加系数,后判断是否为 0 不为 0: 修改 P 的系数值,指针下移 为 0: P 和 Q 同时下移指针继续比较 * 补充作业: 1. 多项式运算 Pn(x) = a0x0+ a1x1+ a2x2+……+anxn 方法一: p = 0; for(i=0;i=n;i++) { p+ = a[i]*x^i; } s = 1; for(j=1;j=i;j++) { s = s*x; } 时间复杂度O(n) 空间复杂度:O(n+2) 方法二: r=x; p = a[0]; for(i=1;i=n;i++) { p = p + a[i] * r; r = r * x; } 时间复杂度:O(n) 空间复杂度:O(n+4) 方法三: p = a[n]; for(i=1;i=n;i++) { p = p * x + a[n-i]; } 时间复杂度:O(n) 空间复杂度:O(n+3) 补充作业: 2. 设数据的逻辑结

您可能关注的文档

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档