当前位置:文档之家› 稀疏矩阵三元组存储转置后矩阵输出

稀疏矩阵三元组存储转置后矩阵输出

int m,n,len;
}TSMatrix;
void creatTSMatrix(TSMatrix *A)
{
int temp,row,col,k;
printf("row,column:");
scanf("%d%d",&A->m,&A->n);
printf("input data must be followed by above row and column :\n");
printf("\n");
}
void FastTransposeTSMatrix(TSMatrix A,TSMatrix *B)
{
int col,t,p,q;
int num[MAXSIZE],position[MAXSIZE];
B->len=A.len;
B->n=A.m;
B->m=A.n;
if(B->len)
#include<stdio.h>
#include<malloc.h>
#define MAXSIZE 1000
typedef int ElementType;
typedef struct
{
int row,col;
ElementType e;
}Triple;
typedef struct
{
Triple data[MAXSIZE+1];
}
}
}
void visit(TSMatrix *B)
{
int row,col,p=1;
int d;
printf("the transposed Triple translate into Matrix is:\n");
for(row=1;row<=B->m;row++)
{ printf("\n");
printf("the Matrix A translate into Triple is:\n\n");
for(row=1;row<=A->len;row++)
printf("%3d%3d%3d\t",A->data[row].row,A->data[row].col,A->data[row].e);
for(col=1;col<=B->n;col++)
{ if(B->data[p].row==row&& B->data[p].col==col)
{ d=B->data[p].e;
p++;
}
else d=0;
printf("%6d",d);
}
}ቤተ መጻሕፍቲ ባይዱ
}
main()
{
TSMatrix A;
TSMatrix B;
clrscr();
creatTSMatrix(&A);
FastTransposeTSMatrix(A,&B);
visit(&B);
getch();
}
for(p=1;p<=A.len;p++)
{
col=A.data[p].col;
q=position[col];
B->data[q].row=A.data[p].col;
B->data[q].col=A.data[p].row;
B->data[q].e=A.data[p].e;
position[col]++;
{
for(col=1;col<=A.n;col++){num[col]=0;}
for(t=1;t<=A.len;t++)
{num[A.data[t].col]++;}
position[1]=1;
for(col=2;col<=A.n;col++)
position[col]=position[col-1]+num[col-1];
k=1;
for(row=1;row<=A->m;row++)
for(col=1;col<=A->n;col++)
{
scanf("%d",&temp);
if(temp)
{
A->data[k].row=row;
A->data[k].col=col;
A->data[k].e=temp;
k++;
}
}
A->len=k-1;
相关主题