三元组转置代码

 #include<iostream.h>
template<class T>
struct Term
{
  int row,col;
  T val;
};
template<class T>
class Septriple
{
public:
Septriple(int msize);
~Septriple() {delete []trip;} ;
/// void Add(const Septriple<T> &B,Septriple<T> &C)const;
//  void Mul(const Septriple<T> &B,Septriple<T> &C)const;
void Transpose()const;
void Shuru();
void Print();
private:
// int maxsize;
    int m,n,t;
Term<T> *trip;
};
template<class T>
Septriple<T>::Septriple(int msize)
{
/*maxsize*/t=msize;
trip=new Term<T>[t];
for(int j=0;j<t;j++)
{
trip[j].row=0;
trip[j].col=0;
trip[j].val=0;
}
}
template<class T>
void Septriple<T>::Shuru()
{
int Row,Col,Val;
   for(;;){
cout<<"行数:"<<endl;
cin>>m;
cout<<"列数:"<<endl;
cin>>n;
if(m*n<t)
{cout<<"Wrong data!"<<endl;
  continue;
}
else break;
}  
for(int i=0;i<t;i++){
      cout<<"row:"<<endl;
   cin>>Row;
      trip.row=Row;
      cout<<"col:"<<endl;
   cin>>Col;
   trip.col=Col;
   cout<<"val:"<<endl;
   cin>>Val;
      trip.val=Val;
  
  
}
}
template<class T>
void Septriple<T>::Transpose()const
{
   Septriple<T> A(t);
   int k=0;
   for(int i=0;i<n;i++)
     for(int j=0;j<t;j++)
      if(trip[j].col==i)
   {
       A.trip[k].col=trip[j].row;
      A.trip[k].row=trip[j].col;
      A.trip[k++].val=trip[j].val;
   }
//   this(A);
//   return A.trip;
   for(int x=0;x<t;x++)
   {
   trip[x].row=A.trip[x].row;
   trip[x].col=A.trip[x].col;
   trip[x].val=A.trip[x].val;
   }
}
template<class T>
void Septriple<T>::Print()
{
for(int i=0;i<t;i++)
{
cout<<trip.row<<"  "<<trip.col<<"  "<<trip.val<<endl;
}
cout<<"/n";
}
void main()
{
Septriple<int> c(8);
c.Shuru();
c.Print();
c.Transpose();
c.Print();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值