03-稀疏矩阵

来源:互联网 发布:大学生linux基础知识 编辑:程序博客网 时间:2024/05/19 18:42

二维数组表格内容

9042166

为了提高内存使用效率,压缩表示

13126267

压缩,是将有效的数据保存下来,上述中无效的数据直接进行了抛弃,而现实中,往往会将重复的数据视为一个有效数据存储,在上述结构中稍作修改即可实现。

#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

0 0