数组-稀疏矩阵用三元组表表示

235 阅读1分钟

三元组表定义

struct Triple {
	int row; //非零元素行下标 
	int col; //非零元素列下标 
	int e;   //非零元素的值 
};
struct TSMatrix {
	Triple data[1000];  //三元组表 
	int m;                   //矩阵的行数 
	int n;                   //矩阵的列数 
	int len;                 //矩阵的非零元素个数 
};

稀疏矩阵转三元组表

void matrixToTriple(TSMatrix &matrix)
{
    matrix.len=0;
    for (int i = 1; i <= matrix.m; i++)
    {
        for (int j = 1; j <= matrix.n; j++)
        {
            cin >> dataa[i][j];
            if (dataa[i][j] != 0)
            {
                matrix.len++;
                matrix.data[matrix.len].row = i;
                matrix.data[matrix.len].col = j;
                matrix.data[matrix.len].e = dataa[i][j];
            }
        }
    }
}