数据结构——稀疏矩阵三元组操作

来源:互联网 发布:sql语句范围查询 编辑:程序博客网 时间:2024/06/05 00:29

/************************author's email:wardseptember@gmail.comdate:2017.12.20************************///稀疏矩阵三元组#include<iostream>using namespace std;#define maxterms 5#define maxSize 4//A为矩阵,B为A所构造的三元组void createTrimat(int A[][maxSize], int m, int n, int B[maxterms+1][3]);void print(int B[maxterms + 1][3]);int main() {int A[][maxSize]= {{0,0,0,1},{0,0,3,2},{1,0,0,0},{0,2,0,0}};int B[maxterms + 1][3] = { 0 };createTrimat(A, 4, 4, B);cout << "三元组输出为:" << endl;print(B);return 0;}void createTrimat(int A[][maxSize], int m, int n, int B[maxterms + 1][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;}void print(int B[maxterms + 1][3]) {int k = 1;for (int i = 0; i < B[0][1]; ++i) {for (int j = 0; j < B[0][2]; ++j) {if (i == (int)B[k][1] && j == (int)B[k][2]) {cout << B[k][0] << " ";++k;}elsecout << "0 ";}cout << endl;}}


程序测试结果为:


阅读全文
0 0