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

三元组顺序表稀疏矩阵设计(不完整)解释.docx

三元组顺序表稀疏矩阵设计(不完整)解释.docx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.稀疏矩阵运算器 数据结构课程设计任务书 针对本课程设计,完成以下课程设计任务: 熟悉系统实现工具和上机环境。 根据课程设计任务,查阅相关资料。 针对所选课题完成以下工作: 需求分析 概要分析 详细设计 编写源程序 静态走查程序和上机调试程序 书写上述文档和撰写课程设计报告。 3.课程设计报告目录 4.正文 (1)问题描述 稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算频率。实现一个能进行稀疏矩阵基本运算的运算器。 (2)需求分析 本课程设计的稀疏矩阵运算器在visual studio 2013下运行调试成功,可以实现的功能有: 1.矩阵运算方式选择 2.根据提示输入相应数据 3.显示最终结果 使用的主要存储结构为三元组,并用三元组形式进行运算。所有参与运算数据类型为整形,因此输入的数据应为整形数据。为了节省存储空间使用三元组数据进行运算,可以通过多次扫描三元组数据来实现,即使用嵌套循环函数。输出结果为通常的阵列形式,因此使用了右对齐,保证输出形式的整齐。 (3)概要分析 本次课程设计中定义的结构体 typedef struct { int i, j;//矩阵元素所在行列 int v;//元素的值 }triple; typedef struct { triple data[MAXSIZE]; triple cop[MAXSIZE];//辅助数组 int m, n, t;//矩阵的行列数 }tripletable; Main函数调用子函数时输入1为调用 int Push_juzhen(int m, int n, int count)函数,可以实现矩阵相加功能 输入2为调用 int Dec_juzhen(int m, int n, int count)函数,可实现矩阵相减功能 输入3为调用 int Mul_juzhen()函数,可以实现矩阵相乘功能 (4)详细分析(流程图 伪代码) 加法函数 int Push_juzhen(int m, int n, int count)//矩阵相加(行,列,矩阵数) { // p行,q列,s非零元素个数,v元素值 //ucount对数组下标计数的变量,与变量x实现多个矩阵相加 for (int c = 0; c count; c++) { int x = 0; cout 请输入第 c + 1 个矩阵???非零元素个数 endl; cin s; cout 请依次输入非零元素所在行和列以及该非零元素的值并以空格隔开 endl; for (; x s; x++)//传递行列及元素值 { cin p q v; a.cop[x].i = p;//将p赋值给data[x].i a.cop[x].j = q;//将q赋值给data[x].j a.cop[x].v = v;//将v赋值给data[x].v } //g行//h列 for (int g = 1; g = m;g++) for (int h = 1; h = n; h++) { int l;//存储下标 for (l = 0; l s; l++)//对辅助存储中的三元组进行行逻辑排序,将数据存入a.data { if (a.cop[l].i == ga.cop[l].j == h) { a.data[u].i = a.cop[l].i; a.data[u].j = a.cop[l].j; a.data[u].v = a.cop[l].v; u++; } } } } //矩阵相加//k为行数//h为列数 for (int k = 0; k u; k++){ for (int h = 0; h = ucount; h++){ if (a.data[k].i == b.data[h].ia.data[k].j == b.data[h].j)//判断行列是否相等 b.data[h].v += a.data[k].v; else{ b.data[ucount].i = a.data[k].i; b.data[ucount].j = a.data[k].j; b.data[ucount].v = a.data[k].v; ucount++;//存储空间增加计数 }break;//增加一组数据时跳出循环,避免重复计算 } } return 0; } 相减函数 int Dec_juzhen(int m, int n, int co

文档评论(0)

花仙子 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档