实验报告稀疏矩阵程序

实验报告稀疏矩阵程序

ID:39615731

大小:75.50 KB

页数:5页

时间:2019-07-07

实验报告稀疏矩阵程序_第1页
实验报告稀疏矩阵程序_第2页
实验报告稀疏矩阵程序_第3页
实验报告稀疏矩阵程序_第4页
实验报告稀疏矩阵程序_第5页
资源描述:

《实验报告稀疏矩阵程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机科学与工程学院实验说明1)首先将稀疏矩阵表示成三元组形式---用数组A表示;2)接着利用稀疏矩阵的快速转置算法进行转换,保存在数组B中;3)最后输出经过转置后的稀疏矩阵形式。实验详细说明快速转置算法的基本思想:按照A的三元组a->data的顺序进行转置,并且将转置后的三元组一次置入b->data中恰当的位置上。这就需要预先确定矩阵A中各列第一个非零元素在b->data中的正确位置。注意到A中第0列的第一个非零元素一定存储在B中下标为0的位置上,该列中其它非零元素应存放在B中后面连续的位置上,那么第1列的第一个非零元素在B中的位置便等于第0列的

2、第一个非零元素在B中的位置加上第0列的非零元素的个数,以此类推。为了实现上述算法,需要设置两个一维数组num和cpot。数组num[col]用于统计矩阵A中第col列的非零元素个数,数组cpot[col]用于表示矩阵A第col列中第一个非零元素在b->data中的恰当的存储位置。cpot[col]值可按下列公式求得:cpot[1]=1;cpot[col]=cpot[col-1]+num[col-1];2≤col<n#defineSMAX16typedefintdatatype;typedefstructthree{inti,j;datatypev;

3、}node;typedefstructthreelist{intm,n,t;nodedata[SMAX+1];}spmat;spmat*fast_transmat(spmat*a){intano,bno;intcol;spmat*b;intnum[SMAX];intcpot[SMAX];b=(spmat*)malloc(sizeof(spmat));b->m=a->n;b->n=a->m;b->t=a->t;5《数据结构》实验报告计算机科学与工程学院if(b->t>0){for(col=1;col<=a->n;col++)num[col]=0;fo

4、r(ano=1;ano<=a->t;ano++){col=a->data[ano].j;num[col]=num[col]+1;}cpot[1]=1;for(col=2;col<=a->n;col++)cpot[col]=cpot[col-1]+num[col-1];for(ano=1;ano<=a->t;ano++){col=a->data[ano].j;bno=cpot[col];b->data[bno].i=a->data[ano].j;b->data[bno].j=a->data[ano].i;b->data[bno].v=a->data[

5、ano].v;cpot[col]=cpot[col]+1;}}returnb;}给定稀疏矩阵A如下:0-200013030005009060-7004000用快速转置算法实现对该矩阵进行转置并输出。intmain(){spmat*A=(spmat*)malloc(sizeof(spmat));spmat*B=(spmat*)malloc(sizeof(spmat));cout<<"rowm=";5《数据结构》实验报告计算机科学与工程学院cin>>A->m;cout<>A->n;cout<

6、out<<"datatypet=";cin>>A->t;cout<t;++a){cout<<"Aenteri,j,v:";cin>>A->data[a].i;cout<<"t";cin>>A->data[a].j;cout<<"t";cin>>A->data[a].v;cout<t;++k){cout<<"i="<data[k].i<<"t"<<"j="<

7、data[k].j<<"t"<<"v="<data[k].v<<"";}5《数据结构》实验报告计算机科学与工程学院}1实验总结(结果和心得体会)5《数据结构》实验报告计算机科学与工程学院5《数据结构》实验报告

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

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

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