电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

十字链表实现稀疏矩阵的加法

十字链表实现稀疏矩阵的加法_第1页
1/17
十字链表实现稀疏矩阵的加法_第2页
2/17
十字链表实现稀疏矩阵的加法_第3页
3/17
十字链表实现稀疏矩阵的加法(15 页)Good is good, but better carries it.精益求精,善益求善。实验二 十字链表 一、实验题目 以十字链表为储存结构,实现稀疏矩阵的求和运算。 二、问题描述1、功能要求:根据用户输入的矩阵,实现稀疏矩阵的求和运算,并输出结果。2、输入要求:矩阵的数据在程序运行的时候由用户提供,先由用户输入稀疏矩阵的行数、列数和非零元个数。再根据非零元个数,输入这些非零元,还需要用户为这些非零元输入行、列和非零元的值。这样,一个稀疏矩阵就输入完成。 若输入3 3 2 则表示这个稀疏矩阵有 3 行 3 列 2 个非零元 然后用户需要为这两个非零元输入行、列、非零元的值 如:1 1 22 2 1 表示第一个非零元行为 1,列为 1,,值为 2;第二个非零元行为 2,列为 2,值为 1。 此过程输入的稀疏矩阵为: 2 0 0 0 1 0 0 0 03、输出要求:输出按矩阵输出,按行列依次输出,非零元则输出非零元的值,不是非零元则输出“0”。各元素之间用空格隔开。最后输出完整的矩阵。 三、概要设计1.稀疏矩阵的抽象数据类型定义如下:ADT SparseMatrix {数据对象: D={aij|i=1,2,3……m,j=1,2,3……n; aij 属于 ElemSet,m 和 n 分别是稀疏矩阵的行数和列数}数据关系: R={ Row, Col }Row={|1<=i<=m,1<=j<=n-1}Col={|1<=i<=m-1,1<=j<=n}基本操作:CreateSMatrix(&M);//建立稀疏矩阵 MDestroySMatrix(&M);//销毁稀疏矩阵 M;TransposeSMatrix(M);//求稀疏矩阵的转置矩阵AddSMatrix(&M,&N);//求稀疏矩阵 M 和 N 之和MulSMatrix(&M,&N);//求稀疏矩阵 M 和 N 之积}ADT SparseMatrix2、存储结构选择采纳十字链表存储稀疏矩阵,它是稀疏矩阵链式表示的一种较好的表示方法。在十字链表中,每一个非零矩阵元素存储在一个结点内。每一个节点除了存储非零元素的三元组以外还设置了 right 和 down 两个指针,分别指向同一行的下一个非零元素结点和同一列的下一个非零元结点。3、其他函数1)主函数 main()2)作为友元函数的加法运算。四、详细设计用十字链表表示稀疏矩阵,需要定义结点类和链表类两个类1、结点类 MatrixNodetemplateclass MatrixNode{ friend class LinkMatrix;friend istream&operator>>(istream&,LinkMatrix&); friend ostream&operator<<(ostream&out, LinkMatrix&); friend LinkMatri...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

十字链表实现稀疏矩阵的加法

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部