稀疏矩阵的表示和转置.doc

稀疏矩阵的表示和转置.doc

ID:53052410

大小:48.50 KB

页数:5页

时间:2020-03-31

稀疏矩阵的表示和转置.doc_第1页
稀疏矩阵的表示和转置.doc_第2页
稀疏矩阵的表示和转置.doc_第3页
稀疏矩阵的表示和转置.doc_第4页
稀疏矩阵的表示和转置.doc_第5页
资源描述:

《稀疏矩阵的表示和转置.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验2稀疏矩阵的表示和转置实验人:杜国胜学号:Xb14680103时间:11.91、实验目的1.掌握稀疏矩阵的三元组顺序表存储结构2.掌握稀疏矩阵的转置算法。2、实验内容采用三元组表存储表示,求稀疏矩阵M的转置矩阵T。(算法5.1)3、实验步骤:1.构建稀疏矩阵M。2.求稀疏矩阵M的转置矩阵T。3.输出稀疏矩阵M和稀疏矩阵T。4、算法说明首先要创建稀疏矩阵和三元组顺序表,定义mu,mu,tu分别表示矩阵的行列数和非零元个数。在进行稀疏矩阵的转置时要做到1.将矩阵的行列值相互交换2.将每个三元组的I,j相互调换3.重排三元组之间的次序5、测试结果6、分析讨论在

2、此次程序中转置的方法称为快速转置,在转置前,应先求的M的每一列中非零元的个数,进而求得每一列的第一个非零元的位置1、附录:源代码#include#defineMAXSIZE100typedefstruct{inti,j;inte;}Triple;typedefstruct{Tripledata[MAXSIZE+1];intmu,nu,tu;}TSMatrix;//创建稀疏矩阵MvoidCreateSMatrix(TSMatrix*M){inti,m,n,e,k;printf("输入矩阵M的行数、列数、非零元的个数(中间用逗号隔开):");s

3、canf("%d,%d,%d",&(*M).mu,&(*M).nu,&(*M).tu);(*M).data[0].i=0;printf("");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

4、

5、m>(*M).mu

6、

7、n<1

8、

9、n>(*M).nu)k=1;if(m<(*M).data[i-1].i

10、

11、m==(*M).data[i-1].i&&n<(*M

12、).data[i-1].j)k=1;}while(k);(*M).data[i].i=m;(*M).data[i].j=n;(*M).data[i].e=e;}printf("");}//输出稀疏矩阵MvoidPrintSMatrix(TSMatrixM){inti;printf("**************************************");for(i=1;i<=M.tu;i++)printf("%2d%4d%8d",M.data[i].i,M.data[i].j,M.data[i].e);printf("*********

13、*****************************");printf("");}//求稀疏矩阵M的转置矩阵TvoidTransposeSMatrix(TSMatrixM,TSMatrix*T){intp,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;(*T).data[q].j=M.

14、data[p].i;(*T).data[q].e=M.data[p].e;++q;}}}voidprint(TSMatrixA){intk=1,a,b;intM[MAXSIZE][MAXSIZE];printf("非零元素所对应的位置:");printf("**************************************");for(a=0;a

15、;k++;}for(a=0;a

16、");for(b=0;b

17、");}printf("**************************************");printf("");}//主函数intmain(){TSMatrixM,T;printf("创建矩阵M:");CreateSMatrix(&M);printf("矩阵M的三元组表为:");PrintSMatrix(M);print(M);TransposeSMatr

18、ix(M,&T);printf("稀疏矩阵M的转换矩

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。