使用链表实现多项式求值
时间: 2023-11-18 19:05:33 浏览: 81
使用链表实现多项式求值的基本思路是将多项式转换为一个个节点,每个节点代表一个项,节点包含两个属性:系数和指数。然后对节点进行遍历,根据节点的系数和指数计算出多项式的值。
以下是使用链表实现多项式求值的示例代码:
```python
class Node:
def __init__(self, coef, expo):
self.coef = coef
self.expo = expo
self.next = None
def eval_polynomial(poly, x):
result = 0
cur = poly
while cur is not None:
result += cur.coef * (x ** cur.expo)
cur = cur.next
return result
```
其中,`Node`类表示一个多项式的项,`eval_polynomial`函数接受一个多项式的头节点和一个变量x,返回多项式在x处的值。
例如,对于多项式`3x^2 + 2x + 1`,可以使用如下代码创建链表:
```python
poly = Node(3, 2)
poly.next = Node(2, 1)
poly.next.next = Node(1, 0)
```
然后调用`eval_polynomial`函数求出多项式在x=2处的值:
```python
result = eval_polynomial(poly, 2)
print(result) # 输出 17
```
这里的结果是3*2^2 + 2*2 + 1 = 17。
阅读全文