- 25
- 0
- 约5.04千字
- 约 6页
- 2017-06-02 发布于河南
- 举报
稀疏矩阵c编程
#includeiostream
using namespace std;
const int DafaultSize=100;
struct Trituple
{
int row,col;
double value;
Trituple operator = (Trituple x)
{row=x.row;col=x.col;value=x.value;return *this;}
};
class SparseMatrix
{
friend ostream operator(ostream out,SparseMatrix M);
friend istream operator(istream in,SparseMatrix M);
private:
int Rows,Cols,Terms;
Trituple *smArray;
int maxTerms;
public:
SparseMatrix(int maxSz=DafaultSize);
SparseMatrix(SparseMatrix x);
~SparseMatrix(){delete[]smArray;}
SparseMatrix operator = (SparseMatrix x);
SparseMatrix Transpose();
SparseMatrix FastTranspose();
SparseMatrix Add(SparseMatrix b);
SparseMatrix Multiply(SparseMatrix b);
};
SparseMatrix::SparseMatrix(int maxSz):maxTerms(maxSz)
{
if(maxSz1)
{
cerr矩阵初始化错误!endl;
exit(1);
}
smArray=new Trituple[maxSz];
if(smArray==NULL)
{
cerr储存分配错误!endl;
exit(1);
}
Rows=Cols=Terms=0;
};
SparseMatrix::SparseMatrix(SparseMatrix x)
{
Rows=x.Rows;Cols=x.Cols;Terms=x.Terms;
maxTerms=x.maxTerms;
smArray=new Trituple[maxTerms];
if(smArray==NULL)
{
cerr存储分配错误!endl;
exit(1);
}
for(int i=0;iTerms;i++)
smArray[i] = x.smArray[i];
};
ostream operator(ostream out,SparseMatrix M)
{
outrows = M.Rowsendl;
outcols = M.Colsendl;
outNonzero terms = M.Termsendl;
for(int i=0;iM.Terms;i++)
outM[M.smArray[i].row][M.smArray[i].col]=M.smArray[i].valueendl;
return out;
};
istream operator(istream in,SparseMatrix M)
{
cout请输入稀疏矩阵的行数,列数及项数!endl;
inM.RowsM.ColsM.Terms;
if(M.TermsM.maxTerms)
{
cerr项数太多!endl;
exit(1);
}
for(int i=0;iM.Terms;i++)
{
cout请输入项的行数,列数及其值:i+1endl;
inM.smArray[i].rowM.smArray[i].colM.smArray[i].value;
}
return in;
};
SparseMatrix SparseMatrix::Transpose()
{
SparseMatrix b(maxTerms);
b.Cols=Rows;
b.Rows=Cols;
b.Terms=Terms;
if(Terms0)
{
int k,i,CurrentB=0;
for(k=0;kCols;k++)
{
for(i=0;iTerms;i++)
{
if(smArray[i].col==k)
{
b.smArray[CurrentB].row=k;
b.smArray[CurrentB].col=smArray[i].row;
b.smArray[Cu
您可能关注的文档
最近下载
- KingSCADA3.7初级培训教材.pdf VIP
- OLED技术原理.ppt VIP
- 胃肠镜麻醉专家共识解读.pptx VIP
- 第23题 几何综合(压轴大题)(原卷版)-2025年中考数学冲刺复习(武汉专用).pdf VIP
- 23J012-5生态护坡(1)护坡.pdf VIP
- 2025心肺复苏指南课件(2025-AHA心肺复苏CPR和心血管急救指南-欧洲复苏委员会).pptx VIP
- 2025年中国人民公安大学教师招聘考试真题 .pdf VIP
- LCD模组制程原理.ppt VIP
- 年产10万吨丙烷脱氢制丙烯工艺设计说明书.docx VIP
- 电土施表13.3-8 排(雨)水立(干)管通球试验记录.doc VIP
原创力文档

文档评论(0)