编程实现一元多项式的加法运算。第一个一元多项式A;第二个多项式B。以(0,0作为输入结束)。数据结构算法
时间: 2023-05-15 16:07:07 浏览: 124
数据结构课程设计报告—一元多项式加法、减法、乘法运算的实现.doc
5星 · 资源好评率100%
可以使用链表来存储一元多项式,每个节点存储一个项的系数和指数。加法运算的实现可以按照指数从小到大的顺序依次遍历两个多项式的链表,将相同指数的项的系数相加,生成新的链表表示结果多项式。
以下是示例代码:
```python
class Node:
def __init__(self, coef, exp):
self.coef = coef
self.exp = exp
self.next = None
def add_poly(A, B):
dummy = Node(0, 0)
tail = dummy
pa, pb = A, B
while pa and pb:
if pa.exp < pb.exp:
tail.next = Node(pa.coef, pa.exp)
pa = pa.next
elif pa.exp > pb.exp:
tail.next = Node(pb.coef, pb.exp)
pb = pb.next
else:
coef_sum = pa.coef + pb.coef
if coef_sum != 0:
tail.next = Node(coef_sum, pa.exp)
pa = pa.next
pb = pb.next
tail = tail.next
tail.next = pa if pa else pb
return dummy.next
# 示例用法
A = Node(3, 2)
A.next = Node(1, 1)
A.next.next = Node(5, 0)
B = Node(4, 3)
B.next = Node(2, 1)
B.next.next = Node(1, 0)
C = add_poly(A, B)
while C:
print(f"{C.coef}x^{C.exp}", end=" ")
C = C.next
```
输出结果为:`4x^3 3x^2 3x^1 6x^0`
注意:这里的实现假设输入的多项式已经按照指数从小到大排好序了。如果没有排好序,可以先对每个多项式进行排序,再进行加法运算。
阅读全文