稀疏矩阵的转置

来源:互联网 发布:郑州办公软件培训 编辑:程序博客网 时间:2024/05/21 09:56
#include <iostream>#include <cstdio>#include <cstdlib>#define MAXSIZE 30using namespace std;typedef struct{    int i;    int j;    int v;}TNode;typedef struct{    int m;    int n;    int t;    TNode data[MAXSIZE];}TSMatrix;void Creat_Matrix(TSMatrix *p,int m,int n){    int i,j,v;    p->m = m;    p->n = n;    p->t = 0;    while(scanf("%d%d%d",&i,&j,&v)&&v!=0)    {        p->data[p->t].i = i;        p->data[p->t].j = j;        p->data[p->t].v = v;        p->t++;    }}void Trans_Matrix(TSMatrix *a,TSMatrix *b){    int p,q,k;    b->m = a->m;    b->n = a->n;    b->t = a->t;    for(k = 0;k<a->n;k++)    {        for(p=0;p<a->t;p++)        {            if(k==a->data[p].j)            {                b->data[q].i = a->data[p].j;                b->data[q].j = a->data[p].i;                b->data[q].v = a->data[p].v;                printf("%d %d %d\n",b->data[q].i,b->data[q].j,b->data[q].v);                q++;            }        }    }}int main(){    TSMatrix *p,*q;    int m,n;    scanf("%d%d",&m,&n);    p = (TSMatrix*)malloc(sizeof(TSMatrix));    q = (TSMatrix*)malloc(sizeof(TSMatrix));    Creat_Matrix(p,m,n);    Trans_Matrix(p,q);    return 0;}
0 0