稀疏矩阵加法稀疏矩阵加法
/*该程序在vs2010旗舰版下 成功编译运行正常*/ /*利用三元组表存储稀疏矩阵 进行加法运算 , 自行建立头文件 头文件实现 main引用 三
个文件*/
//头文件
#ifndef _SPARMATRIX_H_ #define _SPARMATRIX_H_
#define Max_Size 50 template
struct Node
{
int r,c; //非零元的行,列数
T Data; //矩阵元素
};
template class _Sparmatrix
{
pu...
稀疏矩阵加法
/*该程序在vs2010旗舰版下 成功编译运行正常*/ /*利用三元组
存储稀疏矩阵 进行加法运算 , 自行建立头文件 头文件实现 main引用 三
个文件*/
//头文件
#ifndef _SPARMATRIX_H_ #define _SPARMATRIX_H_
#define Max_Size 50 template
struct Node
{
int r,c; //非零元的行,列数
T Data; //矩阵元素
};
template class _Sparmatrix
{
public:
_Sparmatrix(T a[][3],int h,int l); //参数为 矩阵,行数,列数
void print();
void operator + (_Sparmatrix a); //运算符重载 实现加法操作
void restore(); //将三元组表还原为矩阵
void transform();
private:
int rows,cols; //稀疏矩阵的总行,列数
int terms; //非零元个数
Node value[Max_Size]; };
#endif
//头文件实现
#include
#include"sparmatrix.h"
template
_Sparmatrix::_Sparmatrix(T a[][3],int h,int l)
{
rows = h; //行数
cols = l; //列数 赋值操作
terms = 0;
for(int k=0; k
void _Sparmatrix::print() //打印三元组表的所有元素 {
for(int k=0; k
void _Sparmatrix::operator + (_Sparmatrix a) //加法实现 {
if((rows != a.rows) || (cols != a.cols))
{
throw "矩阵类型不同!";
}
int k1=0,k2=0,k3=0; //保存循环变量
Node temp[Max_Size]; //临时保存运算结果
while((k1
void _Sparmatrix::restore() //还原矩阵
{
int m=0;
for(int i=0; i
void _Sparmatrix::transform() {
int temp;
temp = rows;
rows = cols;
cols = temp;
for(int i=0; ivalue[k+1].r)
{
temp
}
}
}
}
//main引用
#include
#include"sparmatrix.cpp" using namespace std;
int main()
{
int a[3][3] = {1,2,3,
4,0,6,
0,0,0,};
int b[3][3] = {0,1,0,
1,0,0,
0,1,0};
_Sparmatrix s2(b,3,3);
_Sparmatrix s1(a,3,3);
/*cout<<"************************************"<
本文档为【稀疏矩阵加法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。