数据结构-稀疏矩阵实验报告.doc

数据结构-稀疏矩阵实验报告.doc

ID:55706723

大小:50.50 KB

页数:4页

时间:2020-05-25

数据结构-稀疏矩阵实验报告.doc_第1页
数据结构-稀疏矩阵实验报告.doc_第2页
数据结构-稀疏矩阵实验报告.doc_第3页
数据结构-稀疏矩阵实验报告.doc_第4页
资源描述:

《数据结构-稀疏矩阵实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验报告课程数据结构实验名称实验四稀疏矩阵学号姓名实验日期:2012/11/12实验四稀疏矩阵实验目的:1.熟悉数组在计算机内存中存储的实现机制;2.熟练并掌握数组的基本运算;3.熟悉并掌握特殊矩阵的压缩存储方法及压缩存储下的矩阵的运算;3.熟悉稀疏矩阵的“三元组表”和“十字链表”存储结构。实验原理:数组的基本算法;矩阵二维下标与数组一维下标的对应关系;矩阵的运算;稀疏矩阵的“三元组表”和“十字链表”存储结构。实验内容:5-18设矩阵A、矩阵B和矩阵C为采用压缩存储方式存储的n阶上三角矩阵,矩阵元素为整数类型,要求:(1)编写实现矩阵加C=A+B的函数;(2)编写实现矩阵乘C=

2、A×B的函数;(3)以下面的数据为测试例子,编写一个主程序进行测试。实验结果:(1)实现矩阵加C=A+B的函数程序为:voidadd(inta[],intb[],intc[],intn){inti;for(i=0;i<=n*(n+1)/2;i++)c[i]=a[i]+b[i];}(2)实现矩阵乘C=A×B的函数程序为:voidprod(inta[],intb[],intc[],intn){inti,j,k,p,q;intsum=0;for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(i<=j){for(k=1;k<=n;k++){if(i<=k)p=k*

3、(k-1)/2+i-1;elsep=n*(n+1)/2;if(j>=k)q=j*(j-1)/2+k-1;elseq=n*(n+1)/2;sum=sum+a[p]*b[q];}c[j*(j-1)/2+i-1]=sum;sum=0;}elsec[n*(n+1)/2]=0;}}(3)主程序为#includevoidadd(inta[],intb[],intc[],intn){inti;for(i=0;i<=n*(n+1)/2;i++)c[i]=a[i]+b[i];}voidprod(inta[],intb[],intc[],intn){inti,j,k,p,q;in

4、tsum=0;for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(i<=j){for(k=1;k<=n;k++){if(i<=k)p=k*(k-1)/2+i-1;elsep=n*(n+1)/2;if(j>=k)q=j*(j-1)/2+k-1;elseq=n*(n+1)/2;sum=sum+a[p]*b[q];}c[j*(j-1)/2+i-1]=sum;sum=0;}elsec[n*(n+1)/2]=0;}}voidprint(inta[],intn){inti,j;for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(i<=j)p

5、rintf("%5d",a[j*(j-1)/2+i-1]);elseprintf("%5d",a[n*(n+1)/2]);}printf("");}}voidmain(){intu[]={1,2,4,3,5,6,0};intv[]={10,20,40,30,50,60,0};intc[7],n=3;add(u,v,c,n);printf("C=A+B=");print(c,n);prod(u,v,c,n);printf("C=A*B=");print(c,n);printf("Thisprogramismadeby");}运行结果为:总结与思考通过此次实验,我掌

6、握了很多矩阵的存储方法和存储结构,熟悉了稀疏矩阵的“三元组表”和“十字链表”存储结构,以及特殊矩阵的压缩存储方法及压缩存储下的矩阵的运算。存储矩阵时,需要按行列下标的顺序存储。

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

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

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