-
-
[旧帖] [求助]关于稀疏矩阵的问题 0.00雪花
-
发表于: 2012-4-24 19:55 924
-
typedef struct { int col; //列 int row; //行 int value; }term; void transpose(term a[],term b[]) { int n, i, j, currentb; n = a[0].value; b[0].row = a[0].col; b[0].col = a[0].row; b[0].value = n; if(n>0) { //非零元矩阵 currentb = 1; for( i = 0; i < a[0].col; i++ ) { //0-5 列 for( j = 1; j <= n; j++ ) { //1-8 元素总和 if( a[j].col == i ) { //如果a[j].col 等于 列值 b[currentb].row = a[j].col; b[currentb].col = a[j].row; b[currentb].value = a[j].value; currentb++; } } } } }
a[0].value 是元素总和
a[0].col 是列总和
a[0].row 是行总和
从a[1]之后开始就是存储稀疏矩阵的3元组
书上说 如果按照行下标来处理原矩阵 那么<j,i,value>在转置矩阵中的确切位置,在其前面的所有元素未处理完之前不能确定的。
如果在转置矩阵中存放这些元组,那么插入这些新元组时,就必须移动元素以维护正确的顺序,所以通过列下标来确定元素转置阵列的位置。
谁能跟我说一下 行和列到底有什么区别啊。。 我不理解
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
- [求助]菜鸟求教 1157
- [求助]关于稀疏矩阵的问题 1271
- [求助]关于稀疏矩阵的问题 925
看原图
赞赏
雪币:
留言: