数据结构设计多项式相加
时间: 2024-03-29 13:32:41 浏览: 70
数据结构 多项式相加
多项式相加是指将两个或多个多项式相加得到一个新的多项式。在数据结构中,可以使用链表或数组来表示多项式。
一种常见的数据结构是使用链表表示多项式。每个节点包含两个成员:系数和指数。链表的每个节点代表一个单项式,多个节点组成一个多项式。通过遍历链表,可以将相同指数的节点合并,并将系数相加得到新的系数。
另一种数据结构是使用数组表示多项式。数组的索引表示指数,数组的值表示系数。通过遍历数组,可以将相同指数的系数相加得到新的系数。
以下是一种基于链表的数据结构设计多项式相加的示例代码:
```python
class Node:
def __init__(self, coefficient, exponent):
self.coefficient = coefficient
self.exponent = exponent
self.next = None
def add_polynomials(poly1, poly2):
result = None
current = None
while poly1 and poly2:
if poly1.exponent > poly2.exponent:
coefficient = poly1.coefficient
exponent = poly1.exponent
poly1 = poly1.next
elif poly1.exponent < poly2.exponent:
coefficient = poly2.coefficient
exponent = poly2.exponent
poly2 = poly2.next
else:
coefficient = poly1.coefficient + poly2.coefficient
exponent = poly1.exponent
poly1 = poly1.next
poly2 = poly2.next
if coefficient != 0:
node = Node(coefficient, exponent)
if result is None:
result = node
current = node
else:
current.next = node
current = node
while poly1:
node = Node(poly1.coefficient, poly1.exponent)
current.next = node
current = node
poly1 = poly1.next
while poly2:
node = Node(poly2.coefficient, poly2.exponent)
current.next = node
current = node
poly2 = poly2.next
return result
```
阅读全文