资源简介
稀疏矩阵相加、相乘和转置(用三元组实现)
代码片段和文件信息
#include
#include
int const N=4; //常量 数组的大小
int const MaxSize=100; // 最大 为100 常量
typedef int ElemType; // ElemType == int
typedef struct //结构体
{
int r; //行号
int c; //列号
ElemType d; //元素值
}TupNode; //三元组定义
typedef struct // 结构体
{
int rows; // 行
int cols; // 列
int nums; //非零元素个数
TupNode data[MaxSize];
}TsMatrix; //三元组存储结构
void CreatMat(TsMatrix &tElemType A[N][N]) //三元组表示稀疏矩阵
{
int ij;
t.rows=N;t.cols=N;t.nums=0; // 行列赋值
for(i=0;i {
for(j=0;j if(A[i][j]!=0)
{
t.data[t.nums].r=i; // Tsatrix中的TupNode data[MaxSize] 从0开始储存数组A的非零值 r c分别存储行列值
t.data[t.nums].c=j;
t.data[t.nums].d=A[i][j];
t.nums++;
}
}
}
void DispMat(TsMatrix t) //输出三元组
{
int i;
if(t.nums<1) // 没有直接返回
return ; // 有的话输出
printf(“\t行数:%d\t列数:%d\t非零个数:%d\n“t.rowst.colst.nums);
printf(“\t--------------------------\n“);
for(i=0;i printf(“\t%d\t%d\t%d\n“t.data[i].rt.data[i].ct.data[i].d);
}
void FastTranMat(TsMatrix tTsMatrix &tb) //矩阵的快速转置
{
int colpqsnum[N]cpot[N];
tb.rows=t.cols;tb.cols=t.rows;tb.nums=t.nums;
if(t.nums) // 如果存在执行下面函数
{
for(col=0;col //先置t矩阵每列非0元个数均为0
for(s=0;s //求t中每一列非0元个数
cpot[0]=0; //t中第一列第一个非元在tb中的序号为1
for(col=1;col cpot[col]=cpot[col-1]+num[col-1];
//求t中第col列中第一个非0元在T中的序号
for(p=0;p {
col=t.data[p].c; //记下t中第p个元素的列号
q=cpot[col]; //该列中第一个非0元在tb中的序号
tb.data[q].r=t.data[p].c;
tb.data[q].c=t.data[p].r;
tb.data[q].d=t.data[p].d;
++cpot[col];
}
}
}
int MatAdd(TsMatrix aTsMatrix bTsMatrix &c) // 矩阵的相加
{
int i=0j=0k=0;
ElemType v;
if(a.rows!=b.rows||a.cols!=b.cols)
return 0; //行数或列数不相等时不能进行相加
c.rows=a.rows;c.cols=a.rows; //c的行数和列数与a的相同
while(i {
if(a.data[i].r==b.data[j].r)
{
if(a.data[i]
- 上一篇:VC++旋转风车代码
- 下一篇:C++教程网Linux网络编程视频教程
相关资源
- 使用vc++6.0调用opencv库函数生成5*5单位
- C++实现的非常好的一个矩阵类
- C语言 51单片机4x4矩阵键盘扫描程序
- C++矩阵运算
- C++实战源码-求矩阵对角线之和
- c++求解矩阵中的马鞍点
- 蛇形矩阵源码(c语言)
- 矩阵计算器(定积分计算器.cpp)
- 矩阵求对角线和
- 大型稀疏矩阵运算库SuiteSparse vs2010通
- C++实战源码-计算两个矩阵和
- 用c语言实现的稀疏矩阵基本操作
- 矩阵运算的C++代码
- 图(邻接矩阵深度搜索广度搜索最小
- 定义采用邻接矩阵存储的图结构封装
- 使用C语言实现复数矩阵的求逆的源代
- 矩阵求逆的C实现
- Strassen矩阵相乘算法,C++实现,可运行
- 施密特正交化C语言程序
- 矩阵计算库matrix标准C++编写,不使用
- mini数学矩阵运算库 C语言
- 矩阵相乘的MPI 并行计算程序Fortran
- 矩阵链乘问题算法设计与分析
- 图形学矩阵、向量类C++实现
- 矩阵相乘SSE优化算法
- C++实现矩阵的所有运算
- kruskal求最小生成树
- C++矩阵类仿Matlab实现
- C++实现置换算法通过矩阵变换加密解
- C/C++求矩阵的秩
评论
共有 条评论