急求稀疏矩阵的操作的源程序

来源:百度知道 编辑:UC知道 时间:2024/06/02 19:26:04
要求:
1.稀疏矩阵采用三元组表示。
2.两个相同行列数的稀疏矩阵A和B的相加矩阵C,并求出C.
3.求A矩阵的转置矩阵D,输出D.

我恰好也做此题啊!你运气真好!
下面的是C语言写的,不知是否可行?
那矩阵的名字可能不符合你的要求,你自己改一下吧,呵呵~~~~~
#include<stdio.h>
#define MAXSIZE 100 /* 非零元个数的最大值 */
typedef struct triple
{
int i,j; /* 行下标,列下标 */
int e; /* 非零元素值 */
}triple;
typedef struct tsmatrix
{
triple data[MAXSIZE+1]; /* 非零元三元组表,data[0]未用 */
int mu,nu,tu; /* 矩阵的行数、列数和非零元个数 */
/* 各列第一个非零元的位置表rpos[0]未用 */
}rlsmatrix;

createsmatrix(rlsmatrix *M)
{ /* 创建稀疏矩阵M */
int e,i,m,n;
M->data[0].i=0; /* 为以下比较顺序做准备 */
printf("请输入矩阵的行数,列数,和非零元素的个数:");
scanf("%d",&M->mu);scanf("%d",&M->nu);scanf("%d",&M->tu);
for(i=1;i<=M->tu;i++)
{
printf("请按行序顺序输入第%d个非零元素所在的行(1~%d),列(1~%d),元素值:",i,M->mu,M->nu);
scanf("%d",&m);scanf("%d",&n);scanf("%d",&e);
if(m<1||m>M->mu|