数据结构实验10——稀疏矩阵

来源:互联网 发布:天猫双11数据直播网址 编辑:程序博客网 时间:2024/06/17 09:10
#include <stdio.h>#include <stdlib.h>#define Num 125typedef struct Triple{    int i,j;    int e;}Triple;typedef struct TS{    Triple data[Num];    int mu,nu,tu;}TS;void CreateTS(TS *M){    int s;    printf("1、请输入稀疏矩阵的行数、列数、非零元素的个数:\n");    scanf("%d%d%d",&M->mu,&M->nu,&M->tu);    for(s=1;s<=M->tu;s++)        scanf("%d%d%d",&M->data[s].i,&M->data[s].j,&M->data[s].e);}void Transport(TS M,TS *T){    int a,b,k;    T->mu=M.nu;    T->nu=M.mu;    T->tu=M.tu;    k=1;    for(a=1;a<M.nu;a++)        for(b=1;b<=M.tu;b++)        if(a==M.data[b].j)        {            T->data[k].e=M.data[b].e;            T->data[k].j=M.data[b].i;            T->data[k].i=M.data[b].j;            k++;        }}void Display(TS T){    int a;    printf("****************************************\n");    printf("mu=%d\tnu=%d\ttu=%d\n",T.mu,T.nu,T.tu);    printf("****************************************\n");    for(a=1;a<=T.tu;a++)        printf("%d\t\t%d\t\t%d\t\n",T.data[a].i,T.data[a].j,T.data[a].e);    printf("****************************************\n");}int main(){    TS T,M,N,S;    CreateTS(&T);    CreateTS(&M);    printf("2、稀疏矩阵T的输出:\n");    Display(T);    printf("2、稀疏矩阵N的输出:\n");    Display(M);    printf("3、稀疏矩阵T的转置运算成功!\n");    Transport(T,&S);    printf("3、稀疏矩阵M的转置运算成功!\n");    Transport(M,&N);    printf("4、稀疏矩阵T的转置输出:\n");    Display(S);    printf("4、稀疏矩阵M的转置输出:\n");    Display(N);    return 0;}

0 0
原创粉丝点击