用链表储存一元多项式
时间: 2024-03-13 14:15:24 浏览: 72
链表是一种常用的数据结构,可以很好地用来储存一元多项式。在链表中,我们可以使用节点来表示多项式的每一项,每个节点包含两个部分:系数和指数。
下面是一个示例的链表节点定义:
```python
class Node:
def __init__(self, coefficient, exponent):
self.coefficient = coefficient
self.exponent = exponent
self.next = None
```
其中,`coefficient`表示多项式的系数,`exponent`表示多项式的指数,`next`指向下一个节点。
然后,我们可以使用链表来储存一元多项式。链表的头节点表示第一项,头节点的`next`指向下一个节点,以此类推。
```python
class PolynomialLinkedList:
def __init__(self):
self.head = Node(None, None)
def add_term(self, coefficient, exponent):
new_node = Node(coefficient, exponent)
current_node = self.head
while current_node.next is not None:
current_node = current_node.next
current_node.next = new_node
def display(self):
current_node = self.head.next
while current_node is not None:
print(f"{current_node.coefficient}x^{current_node.exponent}", end=" ")
current_node = current_node.next
print()
```
上述代码中,`add_term`方法用于向链表中添加新的项,`display`方法用于打印整个多项式。
下面是一个示例的使用:
```python
poly = PolynomialLinkedList()
poly.add_term(3, 2)
poly.add_term(-5, 1)
poly.add_term(2, 0)
poly.display()
```
输出结果为:`3x^2 -5x^1 +2x^0`,表示多项式3x^2 - 5x + 2。
这样,我们就可以使用链表来储存一元多项式了。希望对你有所帮助!
阅读全文