网站大量收购独家精品文档,联系QQ:2885784924

数据结构稀疏矩阵运算器.docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构稀疏矩阵运算器

实习4 4.1稀疏矩阵运算器实习报告题目:设计一个能实现稀疏矩阵基本运算的运算器。班级:软件工程11-1 姓名:张艳艳学号:1101051636 完成日期2012-11-23需求分析1.本演示程序中,以“带行逻辑的链接信息”的三元组顺序表表示稀疏矩阵,实现两个矩阵相加、相减和相乘的运算。稀疏矩阵的输入形式采用三元组表示,而运算结果的表示以阵列形式列出。首先应输入矩阵的行数和列数,并判断给出的两个矩阵的行和列对于所要求的运算是否相匹配。(矩阵的行数和列数均不超过20) 2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据(滤去输入数据中的非法字符)和运算结果显示在其后。3.程序执行的命令包括:(1)构造链表;(2)输入数据;(3)数据处理;(4)结束4.测试数据(1)10 0 0 0 0 0 10 0 0 0 0 9 + 0 0 -1 = 0 0 8-1 0 0 1 0 -3 0 0 -3(2)10 0 0 0 10 0 0 9 - 0 -1 = 0 10 -1 0 1 -3 -2 3 3 0 0(3)4 -3 0 0 1 4 2 0 0 -60 0 0 0 8 0 * 0 1 0 = 800 0 0 1 0 0 1 0 0 010 0 0 0 0 70 0 0 0 000概要设计包含的头文件#includestdio.h #includemalloc.h #includestdlib.h 定义结构体以实现矩阵的生成typedef struct{ int i,j; //非零元的行下标和列下标ElemType e; //非零元的值}Triple; typedef struct{ Triple data[MAXSIZE+1]; int rpos[MAXRC+1]; //各行第一个非零元在三元组的位置表int hs,ls,fls; }TSMatrix,*Matrix; void Creat(TSMatrix M) //矩阵的生成算法void Add(TSMatrix A,TSMatrix B,TSMatrix C,int n) //矩阵的相加与相减运算以n=1或-1来调节加或减int Multiplication(TSMatrix A,TSMatrix B,TSMatrix Q) //实现矩阵的相乘运算void Turn(TSMatrix *a,TSMatrix *b) //实现矩阵的转置详细设计#includestdio.h #includemalloc.h #includestdlib.h #define MAXSIZE 40 //假设非零元素个数的最大值为40 #define MAXRC 20//假设矩阵的最大行数为20 typedef int ElemType; typedef struct{ int i,j; //非零元的行下标和列下标ElemType e; //非零元的值}Triple; typedef struct{ Triple data[MAXSIZE+1]; int rpos[MAXRC+1]; //各行第一个非零元在三元组的位置表int hs,ls,fls; }TSMatrix,*Matrix; void Creat(TSMatrix M) //矩阵的生成算法{ int i,k; for(i=1;i=MAXRC+1;i++) M.rpos[i]=0; printf(请输入矩阵的行数、列数和非零元个数(以空格隔开):); scanf(%d %d %d,M.hs,M.ls,M.fls); for(i=1;i=M.fls;i++){printf(请用三元组形式输入矩阵的元素(行列非零元素):); scanf(%d %d %d,M.data[i].i,M.data[i].j,M.data[i].e); } for(i=1,k=1;i=M.hs;i++){ M.rpos[i]=k; while(M.data[k].i

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档