-
-
[旧帖] [求助]关于稀疏矩阵的问题 0.00雪花
-
发表于: 2012-4-24 19:55 949
-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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>在转置矩阵中的确切位置,在其前面的所有元素未处理完之前不能确定的。
如果在转置矩阵中存放这些元组,那么插入这些新元组时,就必须移动元素以维护正确的顺序,所以通过列下标来确定元素转置阵列的位置。
谁能跟我说一下 行和列到底有什么区别啊。。 我不理解
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [求助]菜鸟求教 1198
- [求助]关于稀疏矩阵的问题 1375
- [求助]关于稀疏矩阵的问题 950
赞赏
雪币:
留言: