两个多项式的加法

原题:用链式存储结构存放一元多项式Pn(x)=p(1) x e(1) + p(2) x e(2) + ... + p(n) x e(n),其中 p(i)是指数为 e(i) 项的非零系数,且满足 0 <= e(1) < e(2) <...< e(n)=n。请设计算法将多项式B=Pn2(x) 加到多项式 A=Pn1(x),同时对算法及链表的节点结构简单注释。要求利用 Pn1(x) 和Pn2(x)的节点产生最后求得的和多项式,不允许另建和多项式的节点空间。 分析:这本质上是将两个有序链表合并为一个新的有序链表,对于指数相同的项还要进行合并同类项,用 la 和 lb 分别指向多项式 A 和 B ,具体思路如下:

a.设 pa、pb指针分别指向 la 与 lb 的首元素结点, la 的头节点作为新多项式链表的表头结点,释放 lb 指向的节点所占用的空间。


b.进行循环比较执行:每次比较 pa 与 pb 所指项的指数域的值,取下值较小的结点合并到新多项式链表的表尾处;对于指数相同的项,将系数域相加,如果和为 0 ,删除 pa 和 pb 所指项,并使 pa 和pb后移;如果和不为零,则将 pa 所指项的系数域改为原 pa、pb 所指系数域之和,再将 pa 所指项合并到新多项式链表表尾处,删除 pb 所指项,再将 pa、pb 后移到原多项式中的后一项,直到有一个链表为空为止。


c.将 la、lb 中非空指针所指示的链表整体插入在循环链表的表尾。

#include<iostream.h>
#include<stdlib.h>
#include<time.h>

ty
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Storm-Shadow

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值