数据结构实验四之稀疏矩阵.docVIP

  • 1
  • 0
  • 约1.53千字
  • 约 3页
  • 2018-03-16 发布于河南
  • 举报
数据结构实验四之稀疏矩阵

#includestdio.h #includemalloc.h #define MaxSize 1000 typedef int DataType; typedef struct { int i,j; DataType v; }TriTupleNode; typedef struct { TriTupleNode data[MaxSize]; int m,n,t; }TriTupleTable; TriTupleTable *great(TriTupleTable *p) { int i,j,c=0,c1=0; TriTupleTable *q; q=(TriTupleTable *)malloc(sizeof(TriTupleTable)); printf(输入你创建的稀疏矩阵的行m和列n以及非零元素的个数t: ); scanf(%d%d%d,p-m,p-n,p-t); q-t=p-t; printf(\n请输入一个稀疏矩阵: \n ); for(i=0;ip-m;i++) { for(j=0;jp-n;j++) { p-data[c].i=i+1; p-data[c].j=j+1; scanf(%d,p-data[c].v); if(p-data[c].v) { q-data[c1].i=p-data[c].i; q-data[c1].j=p-data[c].j; q-data[c1].v=p-data[c].v; c1++; } c++; } } q-m=p-m; q-n=p-n; return q; } void print(TriTupleTable *p) { int i; for(i=0;ip-t;i++) printf(%d\t%d\t%d\n,p-data[i].i,p-data[i].j,p-data[i].v); printf(\n); } void TransMatrix(TriTupleTable *b,TriTupleTable *a) { int p,q,col; b-m=a-n; b-n=a-m; b-t=a-t; if(b-t =0) printf(a中没非零元素!\n); q=0; for(col=1;col = a-n;col++) for(p=0;p= a-t;p++) if(a-data[p].j==col) { b-data[q].i=a-data[p].j; b-data[q].j=a-data[p].i; b-data[q].v=a-data[p].v; q++; } printf(输出转值后的稀疏矩阵非零元素:\n); print(b); } int main() { TriTupleTable *p,*a; p=(TriTupleTable *)malloc(sizeof(TriTupleTable)); a=(TriTupleTable *)malloc(sizeof(TriTupleTable)); p=great(p); printf(\n输出你创建的稀疏矩阵非零元素: \n ); print(p); TransMatrix(a,p); return 0; }

文档评论(0)

1亿VIP精品文档

相关文档