数据结构【串与数组】——PTA:三元组顺序表表示的稀疏矩阵转置运算(含思路)

主题:三元组顺序表表示的稀疏矩阵转置

问题:

输入格式:
输入第1行为矩阵行数m、列数n及非零元素个数t。 按行优先顺序依次输入t行,每行3个数,分别表示非零元素的行标、列标和值。

输出格式:
输出转置后的三元组顺序表结果,每行输出非零元素的行标、列标和值,行标、列标和值之间用空格分隔,共t行。

输入样例1:

3 4 3
0 1 -5
1 0 1
2 2 2
结尾无空行

输出样例1:

0 1 1
1 0 -5
2 2 2
结尾无空行

思路:

  1. 先声明好两个三元组结构体,都有总行数、总列数、非零数总数、储存非零数的数组四个成员。
typedef struct{
	int m ,n , num;//总行数 总列数 总非零数个数
	triple data[MAXSIZE + 1];//非零数存入,并记录他们的行列 
}tsmatrix;

其中,储存非零数的数组为一个结构体类型,其中每个数都有数字、所在行数、所在列数三个成员。

typedef struct{
	int i, j, data;//行 列 数值 
}triple;
  1. 通键盘输入来初始化原三元组的全部四个成员。
  2. 初始化转置三元组的总行数(=原三元组的总列数)、总列数(=原三元组的总行数)、非零数总数三个成员。
	//M为原矩阵,T为转置矩阵 
	T.n = M.m;//T的行数 = M的列数 
	T.m = M.n;//T的列数 = M的行数
	T.num = M.num;//总数不变
  1. 开始初始化转置三元组的非零数数组成员:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值