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

[旧帖] [求助]关于稀疏矩阵的问题 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>在转置矩阵中的确切位置,在其前面的所有元素未处理完之前不能确定的。
如果在转置矩阵中存放这些元组,那么插入这些新元组时,就必须移动元素以维护正确的顺序,所以通过列下标来确定元素转置阵列的位置。

谁能跟我说一下 行和列到底有什么区别啊。。 我不理解

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

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