5.2稀疏矩阵 个阶数较大的矩阵中的非零元素个数s相对于矩阵元 素的总个数十分小时,即<<埘,称该矩阵为稀疏矩阵
5.2 稀疏矩阵 一个阶数较大的矩阵中的非零元素个数s相对于矩阵元 素的总个数t十分小时,即s<<t时,称该矩阵为稀疏矩阵
521稀疏矩阵的三元组表示 稀疏矩阵中的每一个非零元素需由一个三元组(i,a1唯 一确定,稀疏矩阵中的所有非零元素构成三元组线性表 0000 如: 0200000 3000000 0005000 0000600 0000074 对应的三元组线性表为: (0,2,1),(1,1,2),(2,0,3),(3,3,5),(4,4,6),(5,5,7),(5,6,4)
5.2.1 稀疏矩阵的三元组表示 稀疏矩阵中的每一个非零元素需由一个三元组(i,j,ai,j )唯 一确定,稀疏矩阵中的所有非零元素构成三元组线性表。 = 0 0 0 0 0 7 4 0 0 0 0 6 0 0 0 0 0 5 0 0 0 3 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 0 0 0 A6 7 对应的三元组线性表为: ((0,2,1),(1,1,2),(2,0,3),(3,3,5),(4,4,6),(5,5,7),(5,6,4)) 如:
521稀疏矩阵的三元组表示 0 00800 0 0 9 0110 0 9 20000 12 0 15 3 0121500 13 13 40210022 5000000 0 21 5110000 r01333445 c21126140 22
0 1 2 3 4 5 6 0 0 0 8 0 0 0 0 1 0 9 0 11 0 0 0 2 0 0 0 0 0 0 0 3 0 12 15 0 0 0 13 4 0 21 0 0 22 0 0 5 11 0 0 0 0 0 0 r c d 0 2 8 1 1 9 3 1 12 3 2 15 3 6 13 4 1 21 4 4 22 5 0 11 5.2.1 稀疏矩阵的三元组表示
三元组顺序表的数据类型 SMatri定义如下: public struct TupNode 单个三元组的类型 public int r; /行号 public int c; 列号 public int d; /元素值 public struct TSMatrix 元组顺序表类型 public int rows; /行数 public int cols; /列数 public int nums; /非零元素个数 public TupNodel data; 其中,data数组中表示的非零元素通常以行序为主序 顺序排列,它是一种下标按行有序的存储结构。这种有序 存储结构可简化大多数稀疏矩阵运算算法
三元组顺序表的数据类型TSMatrix定义如下: public struct TupNode //单个三元组的类型 { public int r; //行号 public int c; //列号 public int d; //元素值 }; public struct TSMatrix //三元组顺序表类型 { public int rows; //行数 public int cols; //列数 public int nums; //非零元素个数 public TupNode[] data; }; 其中,data数组中表示的非零元素通常以行序为主序 顺序排列,它是一种下标按行有序的存储结构。这种有序 存储结构可简化大多数稀疏矩阵运算算法