数据结构之一元多项式相加
时间: 2023-11-20 09:50:55 浏览: 34
好的,我知道了。对于一元多项式相加,我们可以先将两个多项式按照指数从高到低排列,然后逐项相加即可。具体实现可以使用链表或数组来存储多项式。
下面是一个使用链表实现的例子:
```python
class Node:
def __init__(self, coef, exp, next=None):
self.coef = coef
self.exp = exp
self.next = next
def add_poly(poly1, poly2):
dummy = Node(0, 0)
cur = dummy
while poly1 and poly2:
if poly1.exp > poly2.exp:
cur.next = Node(poly1.coef, poly1.exp)
poly1 = poly1.next
elif poly1.exp < poly2.exp:
cur.next = Node(poly2.coef, poly2.exp)
poly2 = poly2.next
else:
coef_sum = poly1.coef + poly2.coef
if coef_sum != 0:
cur.next = Node(coef_sum, poly1.exp)
poly1 = poly1.next
poly2 = poly2.next
cur = cur.next
cur.next = poly1 or poly2
return dummy.next
```
其中,`Node` 类表示一个多项式中的一项,`coef` 表示系数,`exp` 表示指数。`add_poly` 函数接受两个链表 `poly1` 和 `poly2` 分别表示两个多项式,返回它们的和。