中国石油大学数据结构上机实验.doc

中国石油大学数据结构上机实验.doc

ID:55557582

大小:78.00 KB

页数:11页

时间:2020-05-17

中国石油大学数据结构上机实验.doc_第1页
中国石油大学数据结构上机实验.doc_第2页
中国石油大学数据结构上机实验.doc_第3页
中国石油大学数据结构上机实验.doc_第4页
中国石油大学数据结构上机实验.doc_第5页
资源描述:

《中国石油大学数据结构上机实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《数据结构》实验报告学号姓名胡明禹专业数学与应用数学时间2018.4.24一、实验题目实验5稀疏矩阵的转置二、实验目的1.稀疏矩阵的压缩存储方法2.掌握稀疏矩阵的转置算法三、算法设计分析(一)实验内容1.从键盘输入数据,建立稀疏矩阵的三元组顺序存储2.实现稀疏矩阵的转置算法3.输出原矩阵及转置后的矩阵4.实现矩阵的快速转置算法(二)总体设计此处给出主要函数功能、及函数间调用关系的的描述。例如:①创建稀疏矩阵函数②转置矩阵T函数③快速转置函数④输出函数⑤输出原矩阵和转置函数其功能描述如下:(1)主函数:统筹调用各个函数以实现相应功能Stat

2、usmain()(2)①创建稀疏矩阵函数StatusCreateSMatrix(TSMatrix&M){printf("请输入原矩阵:");printf("行数、列数:");scanf("%d%d",&M.mu,&M.nu);printf("元素总数:");scanf("%d",&M.tu);printf("输入各个对应压缩值:");for(inti=1;i<=M.tu;++i)scanf("%d%d%d",&M.data[i].i,&M.data[i].j,&M.data[i].e);returnOK;}②转置矩阵T函数Stat

3、usTransposeSMatrix(TSMatrixM,TSMatrix&T){intp,q,col;T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;if(T.tu){q=1;for(col=1;col<=M.nu;++col)for(p=1;p<=M.tu;++p)if(M.data[p].j==col){T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++q;}}printf("稀疏矩阵M转置成功。");ret

4、urnOK;}//TransposeSMatrix③快速转置函数StatusFastTransposeSMatrix(TSMatrixM,TSMatrix&T){T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;if(T.tu){intcol,t,q;intnum[100],cpot[100];for(col=1;col<=M.nu;++col)num[col]=0;for(t=1;t<=M.tu;++t)++num[M.data[t].j];cpot[1]=1;for(col=2;col<=M.nu;++col)cpot[co

5、l]=cpot[col-1]+num[col-1];//求cpot向量for(intp=1;p<=M.tu;++p){col=M.data[p].j;q=cpot[col];T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++cpot[col];}//for}//ifprintf("稀疏矩阵M快速转置成功。");returnOK;}④输出函数StatusOutputOSMatrix(TSMatrix&M){printf("

6、n原稀疏矩阵");printf("行数、列数、元素总数%d%d%d",M.mu,M.nu,M.tu);printf("值");for(intt=1;t<=M.tu;++t)printf("%d%d%d",M.data[t].i,M.data[t].j,M.data[t].e);returnOK;}⑤输出原矩阵和转置函数StatusOutputTSMatrix(TSMatrix&M,TSMatrix&T){printf("原稀疏矩阵转置后的稀疏矩阵");printf("行数、列数、元素总数行数、列数、元素

7、总数%d%d%d%d%d%d",M.mu,M.nu,M.tu,T.mu,T.nu,T.tu);printf("值值");for(intt=1;t<=T.tu;++t)printf("%d%d%d%d%d%d",M.data[t].i,M.data[t].j,M.data[t].e,T.data[t].i,T.data[t].j,T.data[t].e);returnOK;}四、实验测试结果及结果分析(一)测试结果(此处给出程序运行截图)(二)结果分析矩阵的快速转置方法的原理是:如果能预先确定矩阵M中每一列(即T中每一行

8、)的第一个非零元在b.data中(上面那图是b.data)恰当位置。那么在对a.data中的三元组一次做转置时,便可直接放到b.data中恰当的位置上去。五、实验总结附录实验程序代码(该部分请

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

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

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