首页
社区
课程
招聘
[旧帖] [求助]关于稀疏矩阵的问题 0.00雪花
发表于: 2012-4-24 19:55 949

[旧帖] [求助]关于稀疏矩阵的问题 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直播授课

收藏
免费
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册