博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C/C++利用三元组实现稀疏矩阵运算
阅读量:6503 次
发布时间:2019-06-24

本文共 1996 字,大约阅读时间需要 6 分钟。

三元组((x,y),z)其中(x,y)表示非零元位置,z表示该坐标的值

由于实际操作时,我们所用的矩阵0非常多,所以一个一个输入值很浪费时间,也浪费空间,所以用一些三元组表示非零元即能表示一个矩阵

三元组稀疏矩阵表示一些图也是很不错的选择

在这里插入图片描述
在这里插入图片描述
这样就很浪费空间,三元组直接

((0,1),1)((1,2),1)((3,4),1)((5,6),1)((7,8),1)

下面是稀疏矩阵代码:

#include 
#include
#include
#define SMAX 1000using namespace std;typedef struct{ int i,j; //储存非零元素的行和列信息 int v; //非零元素的值} SPNode; //定义三元组类型typedef struct{ int row,col,notZero; //矩阵的行、列和非零元素的个数 SPNode data[SMAX]; //三元组表} SPMatrix;void printMatrix(SPMatrix m);SPMatrix createMatrix(){ cout<<"enter row and col and notZero"<
>row >>col >>notZero; SPMatrix matrix; matrix.row = row; matrix.col = col; matrix.notZero = notZero; for(int k = 1; k <= notZero; k++) { cout <<"enter each row and col and value"<
> matrix.data[k].i >>matrix.data[k].j>>matrix.data[k].v; } cout <<"三元组:"<
> num; for(int k = 1; k <= num; k++) { m.data[k].v *= num; } return m;}int isExist(SPMatrix m,SPNode a){ for(int i=1;i<=m.notZero;i++) if(m.data[i].i == a.i &&m.data[i].j == a.j) return i; return 0;}SPMatrix Mul(SPMatrix m1,SPMatrix m2){ if(m1.col != m2.row) { cout<<"wrong"<
0){ result.data[flag].v+=data[k].v; } else{ result.notZero++; result.data[result.notZero] = data[k]; } } return result;}int main(){ int num = 0; do { cout<<"***********************************\n"; cout<<"* 菜单 *\n"; cout<<"* 1.矩阵相加 *\n"; cout<<"* 2.矩阵相减 *\n"; cout<<"* 3.矩阵相乘 *\n"; cout<<"* 4.矩阵数乘 *\n"; cout<<"* 6.退出 *\n"; cout<<"***********************************\n"; cin>>num; if(1 == num|| 2 == num || 3 == num) { SPMatrix m1 = createMatrix(); SPMatrix m2 = createMatrix(); cout<<"两矩阵为"<
>number; cout<<"矩阵为:"<

转载于:https://www.cnblogs.com/xiatom/p/10784863.html

你可能感兴趣的文章
读取swf里所有类定义
查看>>
DOWNLOAD 文件
查看>>
rp2833 网卡以及串口与接插件位置关系
查看>>
ogre场景图与场景内容分离
查看>>
中断小笔记
查看>>
C#委托、事件、消息(入门级)
查看>>
通信常用概念
查看>>
PreferenceFragment 使用 小结
查看>>
FreeBinary 格式说明
查看>>
oracle相关链接
查看>>
使用Spring Cloud和Docker构建微服务
查看>>
常用链接
查看>>
NB-IoT的成功商用不是一蹴而就
查看>>
九州云实战人员为您揭秘成功部署OpenStack几大要点
查看>>
1.电子商务支付方式有哪些 2.比较不同支付方式的优势劣势
查看>>
医疗卫生系统被爆漏洞,7亿公民信息泄露……
查看>>
神秘函件引发的4G+与全网通的较量
查看>>
CloudCC:智能CRM究竟能否成为下一个行业风口?
查看>>
高德开放平台推出LBS游戏行业解决方案提供专业地图平台能力支持
查看>>
追求绿色数据中心
查看>>