用顺序表实现大整数加法运算,给出完整代码
时间: 2024-10-15 12:26:08 浏览: 42
顺序表实现大整数加减JAVA
3星 · 编辑精心推荐
顺序表可以用于表示大整数,每个元素存储一位数字。为了实现大整数加法,我们可以创建两个顺序表分别存储参与相加的两个大整数,然后逐位相加,并考虑进位。以下是使用Python实现的一个简单示例:
```python
class ListNode:
def __init__(self, digit=0):
self.digit = digit
self.next = None
def add_two_numbers(l1, l2):
dummy = ListNode(0) # 创建虚拟头节点
tail = dummy # 尾部指针
carry = 0 # 进位
while l1 or l2: # 当任意一个列表还有剩余位
if l1:
carry += l1.digit
l1 = l1.next
if l2:
carry += l2.digit
l2 = l2.next
tail.next = ListNode(carry % 10) # 添加当前位到结果列表
carry //= 10 # 更新进位
tail = tail.next # 移动尾部指针
if carry > 0: # 如果有剩余进位,添加到最后一位
tail.next = ListNode(carry)
return dummy.next # 返回结果列表的下一个节点作为实际的头部
# 使用示例
l1 = ListNode(2)
l1.next = ListNode(4)
l1.next.next = ListNode(3) # 表示数字243
l2 = ListNode(5)
l2.next = ListNode(6)
l2.next.next = ListNode(4) # 表示数字564
result = add_two_numbers(l1, l2)
while result:
print(result.digit, end="") # 输出:707
result = result.next
阅读全文