⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 l5_1.cpp

📁 《数据结构(C++描述)》-李根强-源代码
💻 CPP
字号:
//稀疏矩阵的转置
#include <iostream.h>
const int maxsize=100;
struct  node          //定义一个三元组  
 {           
int      i , j;         //非零元行、列号
int      v;             //非零元值
};  
struct   sparmatrix        //定义稀疏矩阵
{   
int rows,cols ;           //稀疏矩阵行\列数
int  terms;              //稀疏矩阵非零元个数
node data [maxsize];      //三元组表
};

void  transpose(sparmatrix a,sparmatrix b)
{
b.rows=a.cols;  b.cols=a.rows;
b.terms=a.terms;
if   (b.terms>0)
{int bno=0;
for (int col=0;  col<a.cols; col++)
  for(int ano=0;ano<a.terms;ano++)
if  (a.data[ano].j==col)
{  b.data[bno].j=a.data[ano].i;
b.data[bno].i=a.data[ano].j;
b.data[bno].v=a.data[ano].v;
bno++;
}
}
cout<<"输出转置后的三元组表"<<endl;
 for(int i=0;i<a.terms;i++)
	 cout<<b.data[i].i<<"  "<<b.data[i].j<<"  "<<b.data[i].v<<endl;
 }
void main()
{ sparmatrix a,b;
cout<<"请输入稀疏矩阵的行、列数及非零元的个数:"<<endl;
 cin>>a.rows>>a.cols>>a.terms;
 for( int i=0;i<a.terms;i++)
 { cout<<"请输入一个三元组"<<endl;
 cin>>a.data[i].i>>a.data[i].j>>a.data[i].v;}
 cout<<"输出转置前的三元组表"<<endl;
 for(i=0;i<a.terms;i++)
	 cout<<a.data[i].i<<"  "<<a.data[i].j<<"  "<<a.data[i].v<<endl;
 transpose( a,b);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -