使用C语言设计,设稀疏矩阵 A 和 B 均以三元组顺序表作为存储结构。试写 出计算矩阵相加 C=A+B 的算法,其中,C 是存放结果的三元组表。
时间: 2024-06-04 12:11:30 浏览: 123
带行表的三元组-C语言数据结构讲义 经典
算法如下:
1. 初始化 C 的三元组表为空表。
2. 对 A 和 B 的三元组表进行遍历,假设 A 的当前三元组为 (i, j, a) ,B 的当前三元组为 (i, j, b) ,则进行如下操作:
1) 如果 i、j 均等于 C 的最后一个元素的行号和列号,则将 C 的最后一个元素的值加上 a+b.
2) 否则,如果 i、j 不等于最后一个元素的行号和列号,则将 (i, j, a+b) 插入到 C 的三元组表中。
3) 否则,如果 i、j 中有一个等于最后一个元素的行号和列号,则将 (i, j, a+b) 与最后一个元素合并,更新最后一个元素的值为 a+b.
3. 返回 C 的三元组表。
注:这个算法假设 A 和 B 的三元组表已经按照行号递增、列号递增、行列号相同的顺序排好序。如果没有排好序,则可以先对 A 和 B 进行排序再使用该算法。
阅读全文