稀疏矩阵的转置

记录一下学习过程。 


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "SparseMatrix.h"

void input(SPMatrix &a)//输入采用三元组顺序表存储的矩阵
{
	int p;
	scanf("%d%d%d",&a.m,&a.n,&a.t); //输入矩阵总行数、总列数和非零元素的个数
	for(p=0;p<a.t;p++)
		scanf("%d%d%d",&a.data[p].i,&a.data[p].j,&a.data[p].v);
}
void output(SPMatrix a)//输出矩阵的三元组表
{
	int p;
	for(p=0;p<a.t;p++)
		printf("(%d,%d,%d)\n",a.data[p].i,a.data[p].j,a.data[p].v);
}
void TransSMatrix(SPMatrix a, SPMatrix &b)//一般转置,即:按列序转置
{
	// 请在这里补充代码,完成本关任务
    /********** Begin *********/
   
  	int q,col,p;
	  b.m=a.n;b.n=a.m; b.t=a.t;
	  if(b.t)
	  {
	  	q=0;
	  	for(col=0;col<=a.n;++col)   
		  for(p=0;p<a.t;++p)      
		   if(a.data[p].j==col)
		   {
		   	  b.data[q].i=a.data[p].j;
		   	  b.data[q].j=a.data[p].i;
		   	  b.data[q].v=a.data[p].v;
		   	  ++q;
			} 
	  }
    /********** End **********/
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值