【最新精选】用三元组表存储表示,求稀疏矩阵M转置函数T

2022-07-08 10:14:25   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《【最新精选】用三元组表存储表示,求稀疏矩阵M转置函数T》,欢迎阅读!
三元,稀疏,矩阵,函数,存储
【最新精选】用三元组表存储表示,求稀疏矩阵M转置函数

T

实验目的

采用三元组表存储表示,求稀疏矩阵M转置函数T 实验内容

编程序并上机调试运行。

采用三元组表存储表示,求稀疏矩阵M转置函数T 编写程序

//采用三元组表存储表示,求稀疏矩阵M转置函数T #include #define MAXSIZE 100 typedef struct { int i,j; int e; }Triple; typedef struct {

Triple data[MAXSIZE+1]; int mu,nu,tu; }TSMatrix; //创建稀疏矩阵M

CreateSMatrix(TSMatrix *M) {


int i,m,n,e,k;

printf("输入矩阵M的行数、列数、非零元的个数(中间用逗号隔开):"); scanf("%d,%d,%d",&(*M).mu,&(*M).nu,&(*M).tu); (*M).data[0].i=0; printf("\n");

for(i=1;i<=(*M).tu;i++) { do {

printf("输入第%d个非零元素所在的行(1~%d)(1~%d)值以及该数值: ",i,(*M).mu,(*M).nu); scanf("%d,%d,%d",&m,&n,&e); k=0;

if(m<1||m>(*M).mu||n<1||n>(*M).nu) k=1;

if(m<(*M).data[i-1].i||m==(*M).data[i-1].i&&n<(*M).data[i-1].j) k=1; }while(k); (*M).data[i].i=m; (*M).data[i].j=n; (*M).data[i].e=e; }

printf("\n"); return 1;


}

//输出稀疏矩阵M

void PrintSMatrix(TSMatrix M) { int i;

printf("**************************************\n"); for(i=1;i<=M.tu;i++)

printf("%2d%4d%8d\n",M.data[i].i,M.data[i].j,M.data[i].e); printf("**************************************\n"); printf("\n"); }

//求稀疏矩阵M的转置矩阵T

void TransposeSMatrix(TSMatrix M,TSMatrix *T) {

int p,q,col; (*T).mu=M.nu; (*T).nu=M.mu; (*T).tu=M.tu; if((*T).tu) { q=1;

for(col=1;col<=M.nu;++col) for(p=1;p<=M.tu;++p) if(M.data[p].j==col)

{ (*T).data[q].i=M.data[p].j;


本文来源:https://www.wddqxz.cn/7a169119504de518964bcf84b9d528ea80c72f99.html

相关推荐