1. 实现两个一元多项式的加法运算。 要求: (1)设计函数 createPoly( ),建立一个以单链表形式表示的一元多项式,输 入次序不限,但要求单链表中元素按指数递增次序排列(不能排序算法)。 (2)设计函数 addPoly( ),实现任意两个多项 A 和 B 加法运算,相加结果 在多项式 A 中。要求结果链表仍使用原来两个链表的存储空间,不另外占用其 它的存储空间。 (3)设计函数 output( ),输出多项式。
时间: 2023-05-24 19:05:05 浏览: 136
一元多项式加法器
题目翻译:
1. 实现两个一元多项式的加法运算。 要求:
* 设计函数 createPoly( ),建立一个以单链表形式表示的一元多项式,输 入次序不限,但要求单链表中元素按指数递增次序排列(不能排序算法)。
* 设计函数 addPoly( ),实现任意两个多项 A 和 B 加法运算,相加结果 在多项式 A 中。要求结果链表仍使用原来两个链表的存储空间,不另外占用其 它的存储空间。
* 设计函数 output( ),输出多项式。
解题思路:
这道题目是多项式加法,比较常见。链表不需要排序算法来排序,只需要在插入时按照指数递增的顺序插入即可。
假设现在有两个多项式:
$$
A(x) = a_0 + a_1 x + a_2x^2 + ... + a_nx^n
$$
$$
B(x) = b_0 + b_1 x + b_2x^2 + ... + b_mx^m
$$
这里实现的 addPoly 函数将两个多项式相加,结果存储在 A 中。具体的实现方式是遍历链表 A 和 B,按照指数的大小进行合并,如果指数相同则将系数相加,如果 A 中的节点指数小于 B 中的,则将 A 中的节点插入到 B 中对应节点之前。
完整代码如下:
阅读全文