题目:对m*n稀疏矩阵建立其三元组
实现代码:
//对m*n稀疏矩阵建立其三元组
//输入组合
//1 2 0 1
//3 0 2 1
//0 1 2 3
#include<iostream>
using namespace std;
#define maxSize 4
int creatTrimat(float A[][maxSize],int m,int n,float B[][3]){
int k=1;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++){
if(A[i][j]!=0){
B[k][0]=A[i][j];
B[k][1]=i;
B[k][2]=j;
++k;
}
}
B[0][0]=k-1;
B[0][1]=m;
B[0][2]=n;
return k;
}
int main(){
float A[3][maxSize],B[13][3],k;
cout<<"请输入三行,每行四个正整数,每四个一换行:"<<endl;
for(int i=0;i<3;i++){
cout<<"输入第"<<i+1<<"行:";
for(int j=0;j<maxSize;j++){
cin>>A[i][j];
}
}
k=creatTrimat(A,3,maxSize,B);
for(int i=0;i<k;i++){
for(int j=0;j<3;j++){
cout<<B[i][j]<<" ";
}
cout<<endl;
}
}
输出结果:
请输入三行,每行四个正整数,每四个一换行:
输入第1行:1 2 0 1
输入第2行:3 0 2 1
输入第3行:0 1 2 3
9 3 4
1 0 0
2 0 1
1 0 3
3 1 0
2 1 2
1 1 3
1 2 1
2 2 2
3 2 3
请按任意键继续. . .