稀疏矩阵三元组实现矩阵转置算法实验报告

稀疏矩阵三元组实现矩阵转置算法实验报告

ID:13264369

大小:29.50 KB

页数:9页

时间:2018-07-21

稀疏矩阵三元组实现矩阵转置算法实验报告_第1页
稀疏矩阵三元组实现矩阵转置算法实验报告_第2页
稀疏矩阵三元组实现矩阵转置算法实验报告_第3页
稀疏矩阵三元组实现矩阵转置算法实验报告_第4页
稀疏矩阵三元组实现矩阵转置算法实验报告_第5页
资源描述:

《稀疏矩阵三元组实现矩阵转置算法实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、稀疏矩阵三元组实现矩阵转置算法实验报告实验三稀疏矩阵的三元组表示实现矩阵转置算法学院专业班学号姓名实习目的掌握稀疏矩阵的三元组顺序表存储表示;掌握稀疏矩阵三元组表示的传统转置算法的实现;掌握稀疏矩阵三元组表示的快速转置算法的实现;实习内容稀疏矩阵的按三元组形式输入,即按行序输入非零元的行号、列号、值,实现传统转置算法,输出按通常的阵列形式输出。稀疏矩阵的按三元组形式输入,即按行序输入非零元的行号、列号、值,实现快速转置算法,输出按通常的阵列形式输出。实验步骤三元组的定义#defineMAX_SIZE100

2、//非零元个数的最大值structTriple{inti,j;//行下标,列下标Elemtypee;//非零元素值};structTSMatrix{structTripledata[MAX_SIZE+1];//非零元三元组表,data[0]未用intmu,nu,tu;//矩阵的行数、列数和非零元个数};创建稀疏矩阵M(按三元组形式输入,即按行序输入非零元的行号、列号、值)3.编写三元组传统转置函数。4.编写三元组快速转置函数。4..主函数(1)程序代码#include"stdio.h&q

3、uot;#include"stdlib.h"#defineMAX_SIZE100//非零元个数的最大值TypedefintElemType;structTriple{inti,j;//行下标,列下标ElemTypee;//非零元素值};structTSMatrix{structTripledata[MAX_SIZE+1];//非零元三元组表,data[0]未用intmu,nu,tu;//矩阵的行数、列数和非零元个数};intCreateSMatrix(TSMatrix&M){/

4、/创建稀疏矩阵Minti,m,n;ElemTypee;intk;printf("请输入矩阵的行数,列数,非零元素数:");scanf("%d,%d,%d",&M.mu,&M.nu,&M.tu);if(M.tuMAX_SIZE)return-1;M.data[0].i=0;//为以下比较顺序做准备for(i=1;i=M.tu;i++){do{printf("请按行序顺序输入第%d个非零元素所在的行(1~%d),列(1~%d),元素值:

5、",i,M.mu,M.nu);scanf("%d,%d,%d",&m,&n,&e);//输入非零元的行号、列号、元素值k=0;if(m1

6、

7、mM.mu

8、

9、n1

10、

11、nM.nu)//行或列超出范围k=1;if(mM.data[i-1].i

12、

13、m==M.data[i-1].i&&n=M.data[i-1].j)//行或列的顺序有错k=1;}while(k);M.data[i].i=m;//将m,n,e填入MM.data[i].j=n;M.da

14、ta[i].e=e;}return1;}voidPrintSMatrix(TSMatrixM){//按矩阵形式输出Minti,j,k=1;Triple*p=M.data;p++;//p指向第1个非零元素for(i=1;i=M.mu;i++){for(j=1;j=M.nu;j++)if(k=M.tu&&p-i==i&&p-j==j)//p指向非零元,且p所指元素为当前处理元素{printf("%3d",p-e);//输出p所指元素的值p++;//p指向下一

15、个元素k++;//计数器+1}else//p所指元素不是当前处理元素Printf("%3d",0);//输出0printf("");}}voidTransposeSMatrix(TSMatrixM,TSMatrix&T){//求稀疏矩阵M的转置矩阵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.

16、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;}}}voidFastTransposeSMatrix(TSMatrixM,TSMatrix&T){//快速求稀疏矩阵M的转置矩阵T。算法5.2改intp,q,t,k,col,*num,*cpot;num=(int*)malloc((M.

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

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

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