第2关:稀疏矩阵转置

相关知识
A的转置矩阵B满足B(i,j)=A(j,i)

编程要求
先把你已经通过的第一关的SM_SetAt代码复制过来,然后编写本关的代码
SparseMatrix* SM_Trans(SparseMatrix *A)。
在这个代码里,你需要自己创建一个稀疏矩阵A的转置矩阵,并返回。, 

测试说明
平台会对你编写的代码进行测试:

测试输入:1 2 0.3;
预期输出:"correct!\n"

开始

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

SparseMatrix* SM_Create(int rows, int cols, int maxnodes)
// 创建一个稀疏矩阵。
{
	SparseMatrix* A=(SparseMatrix*)malloc(sizeof(SparseMatrix));
	A->nodes=SL_Create(maxnodes); //给三元组表分配内存
	A->Rows=rows;
	A->Cols=cols;	
	A->maxnodes=maxnodes;
	return A;
}

void SM_Free(SparseMatrix* A)
// 释放/删除 稀疏矩阵。
{
	SL_Free(A->nodes);
	free(A);
}

int SM_Length(SparseMatrix* A)
// 获取长度。
{
	return SL_Length(A->nodes);
}

//设计这个小函数很好用,给读和写矩阵元素带来方便
int SM_Loc(SparseMatrix* A, int row, int col ){
	if(row<0||row>=A->Rows||col<0||col>=A->Cols) {
		return -2;  // -2表示坐标非法 
	}
	else {
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值