实验六、稀疏矩阵的建立与转置(答案).doc

实验六、稀疏矩阵的建立与转置(答案).doc

ID:58663298

大小:32.00 KB

页数:5页

时间:2020-10-15

实验六、稀疏矩阵的建立与转置(答案).doc_第1页
实验六、稀疏矩阵的建立与转置(答案).doc_第2页
实验六、稀疏矩阵的建立与转置(答案).doc_第3页
实验六、稀疏矩阵的建立与转置(答案).doc_第4页
实验六、稀疏矩阵的建立与转置(答案).doc_第5页
资源描述:

《实验六、稀疏矩阵的建立与转置(答案).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验六、稀疏矩阵的建立与转置一、实验目的:1、了解稀疏矩阵的三元组存储形式。2、熟悉掌握三元表存储矩阵的转置算法。二、实验内容:矩阵是很多的科学与工程计算中研究的数学对象。在此,我们感兴趣的是,从数学结构这门学科着眼,如何存储矩阵的元从而使矩阵的各种运算有效的进行。本来,用二维数组存储矩阵,在逻辑上意义是很明确的,也很容易理解,操作也很容易和方便。但是在数值分析中经常出现一些阶数很高的矩阵,同时,在矩阵中又有很多值相同或者都为零的元素,可以对这种矩阵进行压缩存储:对多个值相同的元素只分配一个存储空间;对

2、零元素不分配空间。稀疏矩阵的定义是一个模糊的定义:即非零元个数较零元个数较少的矩阵。例如下图所示的矩阵:0129000000000003000014000240000018000001500-7000为一个稀疏矩阵。为了实现稀疏矩阵的这种存储结构,引入三元组这种数据结构。三元组的线性表顺序存储形式如下图:MUNUTUIIVIJV……IJVA,B:ARRAY[1。。。MAXNUM]OFTUPLE3TP实验步骤看懂书上的算法,参考书上的程序编写程序上机调试、输入数据、检验结果。一、程序流程图开始置B为A的空

3、转置矩阵非零元个数=0?Q=1;COL=1;COL≤列值?P≤非零元个数?若三元组的列号为所寻列,则置换之。Q=Q+1结束开始调用建立稀疏矩阵过程调用转置矩阵过程调用输出矩阵过程结束YNYNCOL+1YP+1四、参考程序structtuple3tp/*稀疏矩阵的建立和转置*/{inti,j;intv;};structsparmattp{intmu,nu,tu;structtuple3tpdata[31];};structsparmattpa,b;voidcrt_sparmat(){inti;printf

4、("输入稀疏矩阵行值,列值,最大非零元个数:");scanf("%d%d%d",&a.mu,&a.nu,&a.tu);for(i=1;i<=a.tu;i++){printf("输入行坐标,列坐标,非零元");scanf("%d%d%d",&a.data[i].i,&a.data[i].j,&a.data[i].v);}}voidtrans_sparmat(){intcol,p,q;b.mu=a.nu;b.nu=a.mu;b.tu=a.tu;if(b.tu!=0){q=1;for(col=1;col<=a

5、.nu;col++)for(p=1;p<=a.tu;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++;}}}out(structsparmattpx){inti,j,k,flag;for(i=1;i<=x.mu;i++){for(j=1;j<=x.nu;j++){flag=0;for(k=1;k<=x.tu;k++){if(((x.data[k].i)=

6、=i)&&((x.data[k].j)==j)){flag=1;printf("%5d",x.data[k].v);}}if(flag==0)printf("0");}printf("");}}main(){printf("稀疏矩阵的建立与转置");crt_sparmat();trans_sparmat();printf("原矩阵为:");out(a);printf("转置矩阵为:");out(b);}

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

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

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