稀疏矩阵的转置.doc

稀疏矩阵的转置.doc

ID:59142098

大小:61.50 KB

页数:5页

时间:2020-09-11

稀疏矩阵的转置.doc_第1页
稀疏矩阵的转置.doc_第2页
稀疏矩阵的转置.doc_第3页
稀疏矩阵的转置.doc_第4页
稀疏矩阵的转置.doc_第5页
资源描述:

《稀疏矩阵的转置.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、上机实验报告学院:计算机与信息技术学院专业:计算机科学与技术(师范)课程名称:数据结构实验题目:三元组法稀疏矩阵的转置班级序号:师范1班学号:1学生姓名:邓雪指导教师:杨红颖完成时间:2015年12月25号一、实验目的:(1)了解什么是三元组表和稀疏矩阵。(2)熟悉三元组的运用。(3)掌握稀疏矩阵按三元组法存储、创建、显示及转置。二、实验环境:Windows8.1MicrosoftVisualc++6.0三、实验内容及要求:将稀疏矩阵按照三元组法顺序存储,通过算法使矩阵转置并用三元组法输出转置后的矩阵。要求实验过程认真耐心。四、概要设计:若将表示稀

2、疏矩阵的非零元素的三元组按行优先的顺序排列,则得到一个其结点都是三元组的线性表。为了确定一个唯一的矩阵,需要存储该矩阵的行数和列数,为了运算方便,将非零元素的个数与三元组表存储在一起。再进行矩阵转置,后用三元组表输出转置后的矩阵。五、代码#include#include#definesmax16typedefintdatatype;//定义结构体typedefstruct{inti,j;//行列号datatypev;//元素值}node;//定义结构体typedefstruct{intm,n,t;//行数、列数

3、、非零元素个数nodedata[smax];}spmatrix;//稀疏矩阵类型//建立矩阵spmatrix*CREATE(spmatrix*c){intk;printf("请输入矩阵的行数:");scanf("%d",&c->m);printf("请输入矩阵的列数:");scanf("%d",&c->n);printf("请输入矩阵的非零元个数:");scanf("%d",&c->t);printf("请输入三元组表:");for(k=0;kt;k++){scanf("%5d",&c->data[k].i);scanf("%5d",&

4、c->data[k].j);scanf("%5d",&c->data[k].v);}returnc;}//稀疏矩阵的转置spmatrix*TRANSMAT(spmatrix*a){intano,bno,col;spmatrix*b;b=(spmatrix*)malloc(sizeof(spmatrix));b->m=a->n;b->n=a->m;b->t=a->t;if(b->t>0){bno=0;for(col=0;coln;col++)for(ano=0;anot;ano++)if(a->data[ano].j==col){b-

5、>data[bno].i=a->data[ano].j;b->data[bno].j=a->data[ano].i;b->data[bno].v=a->data[ano].v;bno++;}}returnb;}//输出voidPrint(spmatrix*a){intk;printf("转置后的三元组表:");for(k=0;kt;k++){printf("%5d",a->data[k].i);printf("%5d",a->data[k].j);printf("%5d",a->data[k].v);printf("");}}voi

6、dmain(){spmatrix*A;A=(spmatrix*)malloc(sizeof(spmatrix));CREATE(A);Print(TRANSMAT(A));printf("");}六、运行界面七、实验中遇到的问题及总结1.数据输入格式不对,导致数据没有输入完全程序就自动结束。经过细心检查解决了该问题。2.编写程序时将行和列写反导致转置后的矩阵结果错误。3.通过调试程序懂得了很多问题,锻炼了我的编程能力。八、参考文献《数据结构——用C语言描述》

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

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

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