已知稀疏矩阵A和B,编程代码实现基于三元组顺序表实现A+B的运算
时间: 2024-02-24 20:59:53 浏览: 103
用三元组实现的稀疏矩阵运算
以下是基于三元组顺序表实现稀疏矩阵A+B的Python代码:
```python
class SparseMatrix:
def __init__(self, m, n, data):
self.m = m
self.n = n
self.data = data
self.tuple_list = []
for i in range(self.m):
for j in range(self.n):
if data[i][j] != 0:
self.tuple_list.append((i, j, data[i][j]))
def __add__(self, other):
if self.m != other.m or self.n != other.n:
raise ValueError("两个矩阵的维度不一致")
result_data = [[0] * self.n for _ in range(self.m)]
for i, j, v in self.tuple_list:
result_data[i][j] += v
for i, j, v in other.tuple_list:
result_data[i][j] += v
return SparseMatrix(self.m, self.n, result_data)
def print_matrix(self):
for i in range(self.m):
for j in range(self.n):
print(self.data[i][j], end=" ")
print()
A = [[1, 0, 0, 0], [0, 2, 0, 0], [0, 0, 3, 0]]
B = [[0, 0, 0, 4], [0, 0, 0, 0], [0, 0, 0, 0]]
sparse_A = SparseMatrix(3, 4, A)
sparse_B = SparseMatrix(3, 4, B)
sparse_C = sparse_A + sparse_B
sparse_C.print_matrix()
```
在上述代码中,我们定义了一个 `SparseMatrix` 类来表示稀疏矩阵,并实现了一个 `__add__` 方法来实现矩阵加法。在 `__add__` 方法中,我们首先检查两个矩阵的维度是否一致,然后将稀疏矩阵转换为普通矩阵,并进行加法运算。最后,我们返回一个新的稀疏矩阵对象。
阅读全文