数据结构实验报告1

数据结构实验报告1

ID:19265891

大小:72.50 KB

页数:21页

时间:2018-09-30

数据结构实验报告1_第1页
数据结构实验报告1_第2页
数据结构实验报告1_第3页
数据结构实验报告1_第4页
数据结构实验报告1_第5页
资源描述:

《数据结构实验报告1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数学与软件科学学院实验报告学期:12至_13第_1学期时间:2012年5月18日课程名称:数据结构专业:信息与计算科学实验编号:5实验项目:稀疏矩阵的三元组实现实验实验成绩:一、实验目的及要求掌握稀疏矩阵的三元组表示方法、算法实现。二、实验内容(1)基于三元组的稀疏矩阵表示与输入、输出方法(必做);(2)基于三元组的稀疏矩阵加法(选做);(3)基于三元组表示的稀疏矩阵转置(选做);(4)基于三元组表示的稀疏矩阵的乘法(选做)。三、实验准备:1)计算机设备;2)程序调试环境的准备,如TC环境;3)实验内容的算法分析与代码设计与分析准备。四、实验步骤:1.录入程序代码并进

2、行调试和算法分析;2.编写实验报告。1,对实验问题的描述:采用矩阵的压缩存储可以减少存储矩阵的空间:即为多个值相同的元只分配一个存储空间;对零元不分配存储空间,只需存储稀疏矩阵的非零元。可以采用一个三元组(i,j,a)确定矩阵的非零元,由此,稀疏矩阵可由表示非零元的三元组及其行列数唯一确定。按照稀疏矩阵的三元组实现矩阵的输入输出,相加,相乘的基本操作。2,算法的数据结构#defineMAXSIZE1000typedefstruct{nti,j;ElemTypev;}Triple;typedefstruct{Tripledata[MAXSIZE+1];intmu,nu,

3、tu;}Spmatrix;3,算法基本操作的说明及分析1,稀疏矩阵的创建intCreatTriple(Spmatrix*a){inti;printf("inputthemaxrowandcolscriptandthenumberofunzeroelement(mu,nu,tu)::");scanf("%d,%d,%d",&a->mu,&a->nu,&a->tu);printf("inputthecolandrowscriptforeachItem(i,j,v)::");for(i=1;i<=a->tu;i++){scanf("%d,%d,%d",&a->data[

4、i].i,&a->data[i].j,&a->data[i].v);}returnOK;}2,两个稀疏矩阵相加intTripleAdd(Spmatrixtriple_a,Spmatrixtriple_b,Spmatrix*triple_c){inti=1,j=1,k=1;if((triple_a.mu!=triple_b.mu)

5、

6、(triple_a.nu!=triple_b.nu)){printf("TheScriptisdifferent!");exit(0);}else{while(i<=triple_a.tu&&j<=triple_b.tu){if(tripl

7、e_a.data[i].jdata[k].i=triple_a.data[i].i;triple_c->data[k].j=triple_a.data[i].j;triple_c->data[k].v=triple_a.data[i].v;k++;i++;}elseif(triple_a.data[i].j>triple_b.data[j].j){triple_c->data[k].i=triple_b.data[j].i;triple_c->data[k].j=triple_a.data[j].j;tri

8、ple_c->data[k].v=triple_a.data[j].v;k++;j++;}else{triple_c->data[k].i=triple_b.data[j].i;triple_c->data[k].j=triple_a.data[j].j;triple_c->data[k].v=triple_a.data[i].v+triple_b.data[j].v;k++;i++;j++;}}elseif(triple_a.data[i].idata[k].i=triple_a.data[i].i;tr

9、iple_c->data[k].j=triple_a.data[i].j;triple_c->data[k].v=triple_a.data[i].v;k++;i++;}else{triple_c->data[k].i=triple_a.data[j].i;triple_c->data[k].j=triple_b.data[j].j;triple_c->data[k].v=triple_b.data[j].v;k++;j++;}}triple_c->mu=triple_a.mu;triple_c->nu=triple_a.nu;triple_c->t

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

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

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