记录一下学习过程。
#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 **********/
}