正在加载图片...
作业答案 4-4针对稀疏矩阵的三种表示方法,写出两个矩阵的求和算法。即若A,B,C为三个矩阵,求 AUUJ= CULI 当i≥j时 luJI I< 三元组顺序表 三元组顺序表的C表示如下: #define MAXSIze 12500 typedef struct nt 1, J //非零元的行列下标 ElemType e typedef //三元组表 ta[0]未用 ITSMatrix 算法: 注意:在稀疏矩阵的三元组顺序表表示中,a_Data域中的非零元排列是有序的,即以行序为主序 排列,在一行中,数据元素按列序排列。因此整个算法可以集中到如下问题:在已知A和B阵的某 行的起始位置的情况下,如何得到C的该行的内容 如图 kC KA 其中kA,kB,kC分别为矩阵A,B,C的 a Data域的当前位置。kX到kx’的位置是矩阵X中第 行的非零元元素 两个矩阵的加法运算转化为第i行元素的加法。而第i行中第j元素的加法可以描述为:作业答案: 4-4 针对稀疏矩阵的三种表示方法,写出两个矩阵的求和算法。即若 A, B, C 为三个矩阵,求 C = A + B. 1. 三元组顺序表 三元组顺序表的 C 表示如下: #define MAXSIZE 12500 typedef struct { int i, j; //非零元的行列下标 ElemType e; }Triple; typedef union { Triple a_Data[MAXSIZE + 1]; //三元组表,a_Data[0]未用 int mu, nu, tu; }TSMatrix; 算法: 注意:在稀疏矩阵的三元组顺序表表示中,a_Data 域中的非零元排列是有序的,即以行序为主序 排列,在一行中,数据元素按列序排列。因此整个算法可以集中到如下问题:在已知 A 和 B 阵的某一 行的起始位置的情况下,如何得到 C 的该行的内容。 如图示: C: kC kC’ A: kA kA’ B: kB kB’ 其中 kA,kB,kC 分别为矩阵 A,B,C 的 a_Data 域的当前位置。kX 到 kX’的位置是矩阵 X 中第 i 行的非零元元素。 两个矩阵的加法运算转化为第 i 行元素的加法。而第 i 行中第 j 元素的加法可以描述为:      = 当 时 当 时 [ ][ ], [ ][ ], [ ][ ] C j i i j C i j i j A i j
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有