#include<iostream>
using namespace std;
#define maxsize 100
typedef int elemtype;
三元组结构体建立
typedef struct
{
int row,col;// 行 ,列
elemtype value;// 值
}triple;
稀疏矩阵三元组表示
typedef struct
{
int rows,cols,terms;//表头存放总行数,列数,非零元素个数
triple *data;
}sparsematrix;
稀疏矩阵三元组表示初始化
void initsparsematrix(sparsematrix &sm,int rw,int cl)
{
sm.rows=rw;
sm.cols=cl;
sm.terms=0;
sm.data=new triple[maxsize];//三元组表
};
创建三元组表示的矩阵
void creatsparsematrix(sparsematrix &A)
{
int i;
cin>>A.terms;
for(i=0;i<A.terms;i++)
{
cin>>A.data[i].row>>A.data[i].col>>A.data[i].value;
}
}
输出三元组表示的矩阵
void printsparsematrix(sparsematrix A)
{
int i;
//输出行,列,非零元素个数
cout<<A.rows<<" "<<A.cols<<" "<<A.terms<<endl;
for(i=0;i<A.terms;i++)
{
cout<<A.data[i].row<<" "<<A.data[i].col<<" "<<A.data[i].value<<endl;
}
}
主函数
int main(int argc,const char * argv[])
{
sparsematrix A;
int rows,cols;
cin>>rows;
cin>>cols;
initsparsematrix(A,rows,cols);
creatsparsematrix(A);
printsparsematrix(A);
return 0;
}
运行结果显示