矩阵的转化问题【行列互换】(稀疏矩阵)

    对于普通的矩阵我们在此不讨论,主要讨论稀疏的存储和转化问题。

首先对于稀疏矩阵的存储,如果像普通的矩阵那样存储,则会造成空间的巨大的浪费。所以我们只存储那些非0的元素,这时就必须指明每一个非零元素的具的体的位置。,定义一个类来表示每一个非零元素。

# include <iostream>
using namespace std;
class MatrixTerm //存储每一个非零元素
{
 friend class SpareMatri
private:
 int row;//元素所在行
 int col;//元素所在列
 int value;//元素的值
}
class SpareMatri
{
private:
 int row;
 int col;
 int terms;//个数
 int capacity;
    MatrixTerm *smArray;// 非零元素数组
public:
 transpose();
 SpareMatri(int row, int col,int term);
}
SpareMatri SpareMatri::transpose()
{
   SpareMatri b (row,col,term);
   if(terms>0)
   {
    int currentB=0;
    for(int c=0; c<col;c++)
    {
       for(int i=0;i<term;i++)
    {
     if(smArray[i].col==c)
     {
      b.smArray[currentB].row=c;
      b.smArray[currentB].col=smArray[i].row;
      b.smArray[currentB++].value=smArray[i].value;
     }
    }
    }
   }
   return b;
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值