📄 head.h
字号:
//假设非0元个数的最大植为100
#define MAXSIZE 100
class tsmatrix;
//三元顺序表
class triple
{
public:
int ii,jj;//行号和列号
elemtype e;//三元组非零元素的值
friend class tsmatrix;
};
class tsmatrix
{
public:
//构造函数
tsmatrix() {}
//构造函数,创建一个Mrow行,Mcol列,非零元素个数为t的稀疏矩阵
//tsmatrix(int mrow,int mcol,int t);
//求转置矩阵
void trmatrix(tsmatrix &);
triple data[MAXSIZE];//储存三元组表的数组
int mu,nu,tu;
};
//创建一个Mrow行,Mcol列,非零元素个数为t的稀疏矩阵
/*tsmatrix::tsmatrix(int mrow,int mcol,int t)
{
int m,n,i,j,f0=0;
if(t<=0) exit(1);
elemtype (*A)[MCOL]=new elemtype[MROW][MCOL];
if(!A){cerr<<"内存分配失败!\ n";exit(-1);}
for(i=0;i<mrow;i++)
for(j=0;j<mcol;j++) A[i][j]=0;
srand(150);
while(f0<=t)//形成二维数组A
{
m=rand()%100;
n=rand()%10;
if(m>=0&&m<=mrow&&n>=0&&n<=mcol)
{
A[m][n]=rand()%10;
if (A[m][n]!=0)
f++;
}
}
{for (i=0;i<mrow;i++)//输出创建的稀疏矩阵
for (j=0;j<mcol;j++)
cout<<setw(3)<<A[i][j];
cout<<endl;
}
}*/
//求稀疏矩阵的转置
void tsmatrix::trmatrix(tsmatrix &T)
{
int p,q,col;
T.mu=nu;T.nu=mu;//矩阵T行数等于矩阵A列数,矩阵T列数等于矩阵A行数
T.tu=tu;//矩阵T非0元数等于矩阵A非0元数
if (T.tu)//如果T的非0元数大于0
{
q=0;//存放指针位置
for(col=0;col<nu;++col)//按列号做扫描
for(p=0;p<tu;++p) //在数组中找列号为COL的三元组
if (data[p].jj==col)
{
//新三元组的行号,列号,元素
T.data[q].ii=data[p].jj;
T.data[q].jj=data[p].ii;
T.data[q].e=data[p].e;
++q;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -