一。问题描述
将一个稀疏矩阵,用三元组的方式压缩存储,然后实现其快速转置
二、实验源码
#include
#include
#define Size 100
typedef struct
{
int i,j;//i表示行,j表示列;
int elem;//矩阵元素
}triple;
typedef struct
{
triple data[Size];//非零元三元组,data[0]不使用
int i_sum;//矩阵行数
int j_sum;//矩阵列数
int count;//矩阵非零元个数
}Tsmatrix;
//用三元组结构存储一个稀疏矩阵
Tsmatrix Init_Tsmatrix()
{
Tsmatrix T;//定义一个稀疏矩阵变量
printf("请依次输入矩阵的行数、列数、非零元总个数:\n");
scanf("%d%d%d",&T.i_sum,&T.j_sum,&T.count);
if(!T.i_sum||!T.i_sum||!T.count)
{
printf("矩阵为空\n");
exit(0);
}
else
{
printf("请依次输入矩阵非零元的行下标、列下标、非零元值:\n");
for(int k=1;k<=T.count;k++)