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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2016-01-19 13:26  sharpfeng  阅读(230)  评论(0编辑  收藏  举报