03-稀疏矩阵
二维数组表格内容
为了提高内存使用效率,压缩表示
压缩,是将有效的数据保存下来,上述中无效的数据直接进行了抛弃,而现实中,往往会将重复的数据视为一个有效数据存储,在上述结构中稍作修改即可实现。
#include <iostream>
using namespace std;
void printDepress(int arr[][3])
{
cout<<"------"
<<arr[0][0]<<" "
<<arr[0][1]<<" "
<<arr[0][2]<<"----"<<endl;
for (int i=1; i<=arr[0][2]; ++i) {
for (int j=0; j<3; ++j) {
cout<<arr[i][j]<<" ";
}
cout<<endl;
}
}
int main()
{
int data[5][10] = {
0,0,1,0,0,0,0,0,0,0,
0,0,0,9,0,0,0,0,0,0,
0,0,0,0,0,2,0,0,0,0,
0,0,0,0,3,0,0,0,0,0,
0,0,0,0,0,0,0,6,0,0
};
int count = 0;
int depress[20][3];
depress[0][0] = 5;
depress[0][1] = 10;
for (int row=0; row<5; ++row) {
for (int col=0; col<10; ++col) {
if (data[row][col] != 0) {
++count;
depress[count][0] = row;
depress[count][1] = col;
depress[count][2] = data[row][col];
}
}
}
// 有效数据个数
depress[0][2] = count;
printDepress(depress);
return 0;
}
结果:
------5 10 5----
0 2 1
1 3 9
2 5 2
3 4 3
4 7 6
Program ended with exit code: 0