第5章数组和广义表内容摘要:

值元。 第 5章 数组和广义表 通常,以非零元素在矩阵中的分布情况,可将稀疏矩阵分为两类 : 1) “特殊矩阵” 的压缩存储 例如 : 三角矩阵、对角矩阵、对称矩阵。 2) 随机稀疏矩阵的压缩存储 随机矩阵中的非零元分布不规则。 第 5章 数组和广义表 一、三元组顺序表 define MAXSIZE 12500 // 假设非零元个数的最大值为 12500 typedef struct { int i, j。 // 该非零元的行下标和列下标 ElemType e。 } Triple。 // 三元组类型 typedef union { Triple data[MAXSIZE + 1]。 // 非零元三元组表, data[0]未用 int mu, nu, tu。 // 矩阵的行数、列数和非零元个数 } TSMatrix。 // 稀疏矩阵类型 第 5章 数组和广义表 • 三元组顺序表又称有序的双下标法,它的特点是,非零元在表中按 行序 有序存储,因此便于进行依行顺序处理的矩阵运算。 然而,若需按行号存取某一行的非零元,则需从头开始进行查找。 第 5章 数组和广义表 二、行逻辑联接的顺序表 define MAXMN 500 // 假设矩阵行数和列数的最大值为 500 typedef struct { Triple data[MAXSIZE + 1]。 // 非零元三元组表, data[0]未用 int rpos[MAXMN + 1]。 // 指示各行第一个非零元的位置 int mu, nu, tu。 // 矩阵的行数、列数和非零元个数 } RLSMatrix。 // 行逻辑链接顺序表类型 第 5章 数组和广义表 • 在下面讨论的两个稀疏矩阵相乘的例子中,容易看出这种表示方法的优越性。 矩阵乘法的精典算法( 非稀疏矩阵压缩存储 ) : for (i=1。 i=m1。 ++i) f or (j=1。 j=n2。 ++j) { Q[i][j] = 0。 for (k=1。 k=n1。 ++k) Q[。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。