【数据结构】 稀疏矩阵 转换成三元组

来源:互联网 发布:stm32f103rct6数据手册 编辑:程序博客网 时间:2024/06/05 18:16
# include <stdio.h># define maxsize 100//三元组结点:typedef int datatype;typedef struct{ int x;int y;datatype value;} Triple;//稀疏矩阵:typedef struct { Triple data[maxsize];int row;int val;int num;/*行、列、非零元素个数*/  } TsMatrix;void main(){int m = 1;TsMatrix matrix = {0,};int array[8][8] = {0,2,0,2,1,0,3,1,0,1,0,0,0,0,0,2,0,1,5,0,0,1,5,0,0,0,0,0,5,0,5,0,0,3,0,0,5,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,0,0,5,0,0,6,};matrix.row = 8;matrix.val = 8;for (int i = 0; i < 8; i ++){for (int j = 0; j < 8; j++){if (array[i][j]){matrix.num ++;matrix.data[m].x = i;matrix.data[m].y = j;matrix.data[m].value = array[i][j];m++;}}}for (int i = 0; i < m; i++){printf("%d %d %d\n",matrix.data[i].x,matrix.data[i].y,matrix.data[i].value);}}

0 0