实验5稀疏矩阵三元组表的操作

上传人:飞*** 文档编号:40587552 上传时间:2018-05-26 格式:DOC 页数:5 大小:54KB
返回 下载 相关 举报
实验5稀疏矩阵三元组表的操作_第1页
第1页 / 共5页
实验5稀疏矩阵三元组表的操作_第2页
第2页 / 共5页
实验5稀疏矩阵三元组表的操作_第3页
第3页 / 共5页
实验5稀疏矩阵三元组表的操作_第4页
第4页 / 共5页
实验5稀疏矩阵三元组表的操作_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验5稀疏矩阵三元组表的操作》由会员分享,可在线阅读,更多相关《实验5稀疏矩阵三元组表的操作(5页珍藏版)》请在金锄头文库上搜索。

1、实验五实验五 稀疏矩阵三元组表的操作稀疏矩阵三元组表的操作科目:数据结构实验和课程设计科目:数据结构实验和课程设计 班级:班级:1010 信管信管 姓名:戴丽姓名:戴丽 学号:学号:20101104012010110401实验目的:实验目的:会定义稀疏矩阵的三元组表。熟悉 C 语言程序的基本结构,掌握程序中的用户头文件、文件之间的相互关系及各自的作用。熟悉对稀疏矩阵的三元组表的一些基本操作和具体的函数定义。熟悉 C 语言操作环境的使用以及多文件程序的输入、编辑、调试和运行的全过程。实验要求:实验要求:认真阅读和掌握本实验内容所给的全部程序。保存和输出程序运行结果,并结合程序进行分析。按照你对稀

2、疏矩阵的三元组表操作的需要,编写程序代码然后运行,给出运行结果。实验设备:实验设备:每人一台安装 VC6.0 编写软件的计算机,公用打印机。注意事项:注意事项:要在硬盘上建立好自己的工作目录,专门用来存储自己所做的实验程序及相关数据,以后每次做实验最好仍采用这个目录。认真编写算法编写算法及运行结果运行结果,针对本实验的具体算法,认真写出算法分析算法分析。实验步骤:实验步骤:#include/#include/稀疏矩阵三元组表的操作稀疏矩阵三元组表的操作#define#define maxsizemaxsize 6464typedeftypedef intint elemtype;elemtyp

3、e;structstruct nodeintnodeint r,c;elemtyper,c;elemtype d;d;structstruct tsinttsint rows,cols,nums;noderows,cols,nums;node datamaxsize;datamaxsize;voidvoid create(tscreate(ts /稀疏矩阵三元组表的建立稀疏矩阵三元组表的建立voidvoid disp(tsdisp(ts a);/a);/显示稀疏矩阵三元组表的内容显示稀疏矩阵三元组表的内容voidvoid trants(tstrants(ts a,tsa,ts /求稀疏矩阵的转

4、置求稀疏矩阵的转置voidvoid add(tsadd(ts a,tsa,ts b,tsb,ts /求两稀疏矩阵的和求两稀疏矩阵的和voidvoid main()main() tsts a;create(a);a;create(a); /稀疏矩阵三元组表的建立稀疏矩阵三元组表的建立disp(a);disp(a);/显示稀疏矩阵三元组表的内容显示稀疏矩阵三元组表的内容tsts at;trants(a,at);at;trants(a,at);/求稀疏矩阵的转置求稀疏矩阵的转置disp(at);disp(at);/显示转置矩阵的内容显示转置矩阵的内容tsts b;create(b);disp(b);

5、b;create(b);disp(b); /稀疏矩阵三元组表的建立稀疏矩阵三元组表的建立tsts c;add(a,b,c);c;add(a,b,c);/求两稀疏矩阵的和求两稀疏矩阵的和disp(c);disp(c);/显示两稀疏矩阵和的内容显示两稀疏矩阵和的内容 voidvoid create(tscreate(ts cina.rowsa.colsa.nums;for(intfor(int i=0;ia.datai.ra.datai.ca.datai.d;cina.datai.ra.datai.ca.datai.d; voidvoid disp(tsdisp(ts a)/a)/显示稀疏矩阵三元

6、组表的内容显示稀疏矩阵三元组表的内容intint i;i;if(a.numsb.dataj.c)if(a.datai.cb.dataj.c) c.datak.r=b.dataj.r;c.datak.r=b.dataj.r;c.datak.c=b.dataj.c;c.datak.c=b.dataj.c;c.datak.d=b.dataj.d;c.datak.d=b.dataj.d;k+;j+;k+;j+; elseelse v=a.datai.d+b.dataj.d;v=a.datai.d+b.dataj.d;if(v!=0)if(v!=0) c.datak.r=a.datai.r;c.data

7、k.r=a.datai.r;c.datak.c=a.datai.c;c.datak.c=a.datai.c;c.datak.d=v;c.datak.d=v;k+;k+; i+;j+;i+;j+; elseelse if(a.datai.rb.dataj.r)if(a.datai.rb.dataj.r) c.datak.r=a.datai.r;c.datak.r=a.datai.r;c.datak.c=a.datai.c;c.datak.c=a.datai.c;c.datak.d=a.datai.d;c.datak.d=a.datai.d;k+;i+;k+;i+; elseelse c.data

8、k.r=b.dataj.r;c.datak.r=b.dataj.r;c.datak.c=b.dataj.c;c.datak.c=b.dataj.c;c.datak.d=b.dataj.d;c.datak.d=b.dataj.d;k+;j+;k+;j+; c.nums=k;c.nums=k; 三算法分析: 1、该稀疏矩阵中的每一个非零元素都由一个三元数组唯一确定,稀疏 矩阵中的所有非零元素构成三元组线性表。Data 按行有序存储。 2、三元数组的建立,定义该三元数组的行、列、以及非零个数分别为 row、cols、nums,用 cin 输入语句进行赋值。 3、三元数组的输出中,从头到尾扫描三元数组依次输出各元素值。 4、矩阵转置,矩阵求和时,用 i,j 作为两个三元组的指针,以行序对 它们的当前值进行相加运算,并将结果存放在 c 中。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号