()k=(nj+)(j)/+ij+ (当i≥j时本题n=)
k=(ni+)(i)/+ji+ (当i<j时本题n=)
()稀疏矩阵的三元组表为s=(()()()()()()()其中第一个三元组是稀疏矩阵行数列数和非零元素个数其它三元组均为非零元素行值列值和元素值
()k=(i)+j (≤ij≤n|ij|≤)
i=floor(k/)+ // floor(a)是取小于等于a的最大整数
j=k(i)
推导过程见上面第题
()行逻辑链接顺序表是稀梳矩阵压缩存储的一种形式为了随机存取任意一行的非零元需要知道每一行第一个非零元在三元组表中的位置为此除非零元的三元组表外还需要一个向量其元素值是每行第一个非零元在三元组表中的位置其类型定义如下
typedef struct
{ int munutu; //稀梳矩阵的行数列数和非零元素个数
int rpos[maxrow+]; //行向量其元素值是每行第一个非零元在三元组表中的位置
Triple data[maxsize];
}SparsMatrix;
因篇幅所限不再画出行逻辑链接顺序表
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []