顺序存储的稀疏矩阵(三元组)的转置
来源:互联网 发布:知道mac地址怎么查ip 编辑:程序博客网 时间:2024/06/18 13:08
#define MAXSIZE 12500typedef struct { int i, j; //行i,列j ElemType e;}Triple;typedef struct { Tripe data[MAXSIZE + 1]; int rowNum, colNum, nozeroNum; /* mu 为行数 nu 为列数 tu 为非零元个数*/}TSMatrix;
转置1
1、矩阵的行列的值互换,也就是i、j互换。
2、对三元组的次序进行重新排序。
TSMatrix transpose(TSMatrix a){/*稀疏矩阵(三元组存储结构)转置算法*/ int p, q, col; TSMatrix a; b.rowNum = a.colNum; b.colNum = a.rowNum; b.tu = a.nozeroNum; if (a.nozeroNum != 0) { q = 1; for (col = 1; col <= a.colNum; col++) for (p = 1; p <= a.nozeroNum; p++) if (a.data[p].j == col) { b.data[q].j = a.data[p].i; b.data[q].i = a.data[p].j; b.data[q].e = a.data[p].e; q++; } } return b;}
转置2
1、矩阵的行列的值互换,也就是i、j互换。
2、直接将转置后的三元组放置在b中恰当的位置 。
/* cpot 是对应行的第一个位置,所以第一列的第一个位置为1,其他行的位置为前面所有行所对应的非零个数的和+1*/
TSMatrix transpose(TSMatrix a){/*稀疏矩阵(三元组存储结构)转置算法*/ int p, q, col; int num[a.colNum + 1]; int cpot[a.colNum + 1]; TSMatrix b; b.rowNum = a.colNum; b.colNum = a.rowNum; b.tu = a.nozeroNum; if (a.nozeroNum != 0) { for (col = 1; col <= a.colNum; col++) num[col] = 0; for (int t = 1; t <= a.nozeroNum; t++) ++num[a.data[t].j]; cpot[1] = 1; for (col = 2; col <= a.colNum; col++) cpot[col] = cpot[col - 1] + num[col - 1]; for (p = 1; p <= a.nozeroNum; p++) { col = a.data[p].j; q = cpot[col]; //p 代表 矩阵a的位置,q代表在b中要插入的位置。 b.data[q].j = a.data[p].i; b.data[q].i = a.data[p].j; b.data[q].e = a.data[p].e; ++cpot[col]; //位置发生变化 自动加一 } } return b;}
阅读全文
0 0
- 稀疏矩阵的三元组顺序存储
- 顺序存储的稀疏矩阵(三元组)的转置
- 稀疏矩阵的三元组顺序表存储
- 稀疏矩阵的三元组存储结构
- 稀疏矩阵的三元组存储
- 稀疏矩阵的三元组存储算法
- 稀疏矩阵(三元组顺序表存储)6种操作的实现
- 稀疏矩阵 三元组顺序存储
- 稀疏矩阵的三元组存储和逆置
- 稀疏矩阵的实现(三元组存储)C++
- 稀疏矩阵的三元组顺序表存储及矩阵相乘算法小结
- 稀疏矩阵的三元组顺序表存储及矩阵相乘算法小结
- 稀疏矩阵的三元组顺序表存储及矩阵相乘算法小结
- 三元组(稀疏矩阵的转置)
- 矩阵的压缩存储(稀疏矩阵的十字链表存储、稀疏矩阵的三元组行逻辑链接的顺序表存储表示、稀疏矩阵的三元组顺序表存储表示)
- 三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述)
- 三元组表示矩阵,以及稀疏矩阵的转置
- 顺序存储结构的三元组稀疏矩阵的乘法运算
- 并查集(union-find)算法详解
- live-server的安装与使用
- 九九乘法表
- 进程间互斥、同步
- java 反射机制-学习笔记(3)
- 顺序存储的稀疏矩阵(三元组)的转置
- 从铁路技术装备展的科技“攀比”看合作共赢
- POJ 3080.Blue Jeans
- hdu1010 Tempter of the Bone(dfs) java
- VS2012尝试运行项目时出错 无法启动程序 请参见应用程序日志时间
- 强连通分量——tarjan
- 第二讲 类加载器
- Leetcode 5. Longest Palindromic Substring(java版)
- 4 Values whose Sum is 0(poj 2785)