题目:假设稀疏矩阵A和B均以三元组表作为存储结构,试写出矩阵相加和相乘的算法,另设三元组表C存放结果矩阵。 要求: 从键盘输入稀疏矩阵A和B 检测A和B能否相加/相乘 如能,做矩阵相加和相乘运算,并打印运算结果 如不能,应显示出原因 这里主要就是三元组的运用,比较基础,详情见代码中的注释。 ...
声明:图片及内容基于https: www.bilibili.com video av 特殊矩阵的压缩和存储 对称矩阵的压缩存储 三角矩阵的压缩存储 对角矩阵的压缩存储 稀疏矩阵的压缩和存储 稀疏矩阵 三元组 十字链表 完整实例 定义三元组 定义稀疏矩阵类 构造函数 析构函数 插入三元组 获得稀疏矩阵值 打印稀疏矩阵 打印三元组 输入元素 矩阵加法 矩阵乘法 完整代码 ...
2021-03-16 17:26 0 390 推荐指数:
题目:假设稀疏矩阵A和B均以三元组表作为存储结构,试写出矩阵相加和相乘的算法,另设三元组表C存放结果矩阵。 要求: 从键盘输入稀疏矩阵A和B 检测A和B能否相加/相乘 如能,做矩阵相加和相乘运算,并打印运算结果 如不能,应显示出原因 这里主要就是三元组的运用,比较基础,详情见代码中的注释。 ...
本篇文章的代码基于【数据结构】【严蔚敏】【清华大学】 不是很想分函数来一遍解释 信息基本上都在注解里 直接上完整代码好了 ...
为什么要对矩阵进行压缩存储呢?对于一个n*m的矩阵,我们一般会想到开一个n*m的二维数组来存储,这样计算操作都很方便模拟,但当一个矩阵很大时,这样对于空间的开销与浪费是很可怕的,尤其是当矩阵变成多维时。但我们往往不会在矩阵每一个位置都存有数据,很多矩阵元素其实是0,我们需要记录的只是那些非零元 ...
特殊矩阵的压缩存储 数组 数组可以看作线性表的推广。数组作为一种数据结构其特点是结构中的元素本身可以是具有某种结构的数据,但属于同一数据类型,数组是一个具有固定格式和数量的数据有序集, 每一个数据元素有唯一的一组下标来标识,因此,在数组上不能做插入、删除数据元素的操作。 1、数组 ...
在普遍的印象中,矩阵是由方括号围住,同时各个坐标的数字整齐的排列着。如下图所示: 看到图示后,第一反应当然是用一个二维数组来表示,即简单又易懂。但我们又会碰到下图所示矩阵: 看看这个矩阵,0好多啊(我们称之为稀疏矩阵),若用二维数组来表示,会重复存储了很多个 ...
矩阵相乘的前提条件是:乘号前的矩阵的列数要和乘号后的矩阵的行数相等。且矩阵的乘法运算没有交换律,即 A*B 和 B*A 是不一样的。 例如,矩阵A: 矩阵B: 由于矩阵 A 的列数和矩阵 B 的行数相等,可以进行 A*B 运算(不能进行 B*A 运算)。计算方法 ...
#include<stdio.h> #include<malloc.h> #include<stdlib.h> #include<strin ...
没有经过处理的稀疏矩阵其实就是一个特殊的二维数组,数组中的大部分元素是0或者其他类型的非法值,只有少数几个非零元素。 为了实现压缩存储,可以只存储稀疏矩阵的非0元素。在存储稀疏矩阵中的非0元素时,必须要存储该元素的行列号以及元素值。 我们可以封装一个三元组类来存储这些元素。 //三元组 ...