




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 / 6word.实验2稀疏矩阵的建立与转置一、实验目的掌握特殊矩阵的存储和操作算法。二、实验内容及问题描述实现用三元组保存稀疏矩阵并实现矩阵转置的算法。三、实验步骤.定义稀疏矩阵的三元组形式的存储结构。.实现三元组矩阵的传统转置算法。.实现三元组矩阵的快速转置算法。.输入矩阵非零元素,测试自己完成的算法。四、程序流程图五、概要设计矩阵是很多的科学与工程计算中研究的数学对象。在此,我们感兴趣的是,从数学结构这门学科着眼,如何存储矩阵的元从而使矩阵的各种运算有效的进行。本来,用二维数组存储矩阵,在逻辑上意义是很明确的,也很容易理解,操作也很容易和方便。但是在数值分析中经常出现一些阶数很高的矩阵,
2、同时,在矩阵中又有很多值相同或者都为零的元素,可以对这种矩阵进行压缩存储:对多个值相同的元素只分配一个存储空间;对零元素不分配空间。稀疏矩阵的定义是一个模糊的定义:即非零元个数较零元个数较少的矩阵。例如下图所示的矩阵0 12 9 0 0 0 00 0 0 0 0 0 0 TOC o 1-5 h z 300001400024000001&000001500-7000为一个稀疏矩阵。为了实现稀疏矩阵的这种存储结构,引入三元组这种数据结构。三元组的线性表顺存储形式如下图:MUNUTUIVrjV,hljV7A; B; 的5丫口TUPLE3Tp六、详细设计sanyuanzu.h 头文件#define m
3、ax 100typedef structint row,col;int e;Triple;/定义三元组typedef structTriple datamax;int mu,nu,tu;TSMatrix;/*定义三元组的稀疏矩阵*/void creat( TSMatrix &M);void fasttrans(TSMatrix A,TSMatrix &B);void printfx(TSMatrix x);sanyuanzu.cpp 文件#include #includesanyuanzu.h/* 建立三元组的稀疏矩阵*/void creat( TSMatrix &M););printf(请输
4、入稀疏矩阵的行数:scanf(%d,&M.mu);printf(请输入稀疏矩阵的列数:scanf(%d,&M.nu);printf( 请输入矩阵中非零元素的个数: );scanf(%d,&M.tu);int i;printf( 请输入这 %d 个元素的行号和列号及其元素的值: /n,M.tu);for(i = 1; i = M.tu;i+)scanf(%d %d %d,&M.datai.row,&M.datai.col,&M.datai.e);/* 实现三元组的矩阵转置的函数 */void fasttrans(TSMatrix A,TSMatrix &B)int col,cpotmax,num
5、max,t,p,q;/* 初始化矩阵B*/B.mu=A.nu;B.nu=A.mu;B.tu=A.tu;if(B.tu)for(col=1;col=A.nu;+col)numcol=0;/* 初始化每一列非零元的个数*/for(t=1;t=A.tu;+t)+numA.datat.col;/*计算每一列非零元的个数*/cpot1=1;for(col=2;col=A.nu;+col)cpotcol=cpotcol-1+numcol-1;/ 的位置/* 实现对 A 中的每一个非零元进行转置for(p=1;p=A.tu;+p)col=A.datap.col;q=cpotcol;B.dataq.row=A
6、.datap.col;B.dataq.col=A.datap.row;B.dataq.e=A.datap.e;*/计算矩阵 A 每一列第一个非零元在B.data 中+cpotcol;/* 稀疏矩阵的输出 */void printfx(TSMatrix x)int i,j;for(j=1;j=x.tu;j+)for(i=1;i=x.mu;i+)if(x.dataj.row=i)printf(%d %d %d/n,x.dataj.row,x.dataj.col,x.dataj.e );main.cpp 文件#include#includesanyuanzu.cpp/ 主函数int main(voi
7、d)TSMatrix t,s;creat(t);printf( 你所输入的稀疏矩阵为 :/n);printfx(t);fasttrans(t,s);printf( 转置后的稀疏矩阵为 :/n);printfx(s);return 0;七、调试报告叫 Bl nElutlr5tdiaa产,ill.dR”* Illa . CiMJsmpnltmiBfiTiMnniwvuiruiupbugMriyuaruti cxp Ffki i,中,rniaftl AltPCt F1iF坏,!.福中甥阵1liM r 我住 -T - - -保1八、分析与遇到的问题(1)创建稀疏矩阵时,不懂如何用三元组表示元素的输出;
8、(2)需要注意矩阵运算中的特殊状况,稀疏矩阵相加时,忘记对应元素相加为0时,在稀疏矩阵中不表示;(3)矩阵相加时,第一个矩阵的行列数要和第二个矩阵的行列数相等; (4)输出矩阵时,输出界面不整齐。九、用户使用说明(1)运行程序,首先会看到一个提供选择的界面,输入相应的序号实现相应的功能;(2)在进行相应的功能之后按提示要求一三元组形式输入相应矩阵。(注意:每个数据之间用空格隔开);(3)输入相应矩阵之后会输出最后的运算结果;(4)输出结果运算之后会可按任意键返回。十、心得体会这次数据结构课程设计的制作使我对数据结构和C语言的理解加深,也使我自己认识到自己很多不足之处。 我发现自己再处理稍微具体的程序时显得无从下手以前学习的知识 只是理论性的知识,并没有真正实践过,当我通过网上查询、复习知识后才对编程程序有了 初步思路。后来编写程序时也碰
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三年级信息技术 雁过留声真有趣教学实录 苏教版
- 乡镇结核病防治工作培训
- 手工缝纫-锁针(教案)-2024-2025学年四年级上册劳动北京版
- 七年级历史上册 第一单元 史前时期 中国境内人类的活动 第1课《中国早期人类的代表-北京人》教学实录 新人教版
- 第三课 学会表达情绪-教学设计-小学心理健康四年级同步备课(大象版)
- 2025合同的违约责任解析
- 2025餐厅摊位租赁合同(合同范本)
- 传染病预防知识讲座
- 2017秋中华书局版九年级历史上册第五单元教学设计:第16课 俄国农奴制改革
- 解决问题的策略(教学设计)-2024-2025学年数学六年级上册苏教版
- 邯郸2025年河北邯郸市春季博硕人才引进1438人笔试历年参考题库附带答案详解
- T-CALI 1101-2024 家用太阳能光伏照明产品-性能要求
- 中国特色社会主义政治经济学课件
- 临床医学个人能力提升
- 2025年焦虑症健康教育课件:创新与实践相结合
- 定额〔2025〕2号文-关于发布2020版电网技术改造及检修工程概预算定额2024年下半年价格
- 2025年部编版道德与法治小学三年级下册全册教案(含教学计划)
- 《普通高中体育与健康》(水平五)体能模块教学计划
- 主要施工机械设备、劳动力、设备材料投入计划及其保证措施
- 行政复议法-形考作业1-国开(ZJ)-参考资料
- 【课件】学堂乐歌 课件-2022-2023学年高中音乐人音版(2019)必修音乐鉴赏
评论
0/150
提交评论