数据结构实验6稀疏矩阵

数据结构实验6稀疏矩阵

ID:22634803

大小:93.44 KB

页数:7页

时间:2018-10-30

数据结构实验6稀疏矩阵_第1页
数据结构实验6稀疏矩阵_第2页
数据结构实验6稀疏矩阵_第3页
数据结构实验6稀疏矩阵_第4页
数据结构实验6稀疏矩阵_第5页
资源描述:

《数据结构实验6稀疏矩阵》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、1、实验目的(1)掌握稀疏矩阵三元组表的存储方法;(2)掌握稀疏矩阵三元组表的创建、显示、转罝和查找算法。2、实验内容(1)编写稀疏矩阵三元组表的存储程序;(2)编写稀疏矩阵三元组表的创建、显示、转置和查找程序。3、实验要求(1)用C(C++)语言完成算法设计和程序设计。(2)上机调试通过实验程序。(3)输入数据,检验程序运行结果。(4)给出具体的算法分析,包括时间复杂度和空间复杂度等。(5)撰写实验报告(把输入实验数据及运行结果用抓图的形式粘贴到实验报告上)。4、实验步骤与源程序(1)实验步骤先从具体的闷题中抽象出适当的数学模型,然后设计出相应的算法,其中,需要设计一个主函数來实

2、现菜单的输出,设计另外五个函数来求分别实现新建,转置,查找,显示,最后,串接函数,并调试程序,在调试的时候,我先进行新建操作,输入数据之后,然后开始转置操作,再进行查找其巾的非零元素,多次调试后,发现没有H题,得出实验结果,并截图。⑵源代码#include#include#include#include^defineSMAX100typodofstructSPNode{inti,j,v;};typedefstructsparmatrix{introws,cols,terms;SPNodedata[SMA

3、X];};sparmatrixCreateSparmatrix(){sparmatrixA;//三元组非零元素的s大个数//定义三元组//三元组非零元素的行、列和值//定义稀疏矩阵//稀疏矩阵行、列和非零元素的个数//三元组表//创建稀疏矩阵printfCtt请输入稀疏矩阵的行数,列数和非零元个数(用逗号隔开):");scanf(〃%d,%d,%d",&A.rows,&A.cols,&A.terms);for(intn二0;n<=A.terms-1;n++){printfCtt输入非零元值(格式:行号,列号,值):");scanf("%d,%d,%d〃,&A.dat

4、a[n].i,&A.data[n].j,&A.data[n].v);}returnA;}sparmatrixTrans(sparmatrixA)//转置稀疏矩阵{sparmatrixB;B.rows=A.cols;B.cols=A.rows;B.terms=A.terms;for(intn=0;n〈=A.terms-1;n++){B.data[n].i=A.data[n].j;B.data[n].j=A.data[n].i;B.data[n].v二A.data[n].v;}returnB;}voidShowSparmatrix(sparmatrixA)//显示稀疏矩阵{intk;p

5、rintf(〃tt〃);for(intx=0;x〈=A.rows-1;x++){for(inty=0;y〈=A.cols-1;y++){k=0;for(intn二0;n〈=A.terms-1;n+十){if((A.data[n].i==x)&&(A.data[n].j==y)){printf("%8d〃,A.data[n].v);k=l;}}if(k==0)}printf("tt");}}voidSearchSparmatrix(sparmatrixA,ints)//查找稀疏矩阵中非零元素{intn,t;t=A.terms;for(n=0;n〈t;n++){if(A

6、.data[n].v==s){printfrtt行列值11〃);%2d〃,printf(z,tt元素位置:%2d%2dA.data[n].i,A.data[n].j,A.data[n].v);n=—l;break;}}if(n!:-l)printf(z,tt矩阵中无此元素!");}voidmainO//稀疏矩阵的三元组存•储{intch=l,choice,s;structsparmatrixA,B;A.terms=0;B.terms=0;while(ch){printf(’An");printf(〃tt稀疏矩阵的三元组存储门〃);prin

7、tf("t木***********************************木")printf("tt*1——-新建printf("tt*2—转貫printf("tt*3————查找%”4显printf("tt氺0返冋printf(〃tt请输入菜单号(0—4):〃);scanf(〃%d〃,&choice);switch(choice){case1:A=CreateSparmatrix();break;case2

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

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

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