数据结构C语言>数组>压缩二维数组

二维数组里,有大部分空间没使用,为了增加数组内存的使用效率,我们要压缩它。

嗯,上代码

 

 1  #include  < stdio.h >
 2  #include  < stdlib.h >
 3 
 4  int  main( int  argc,  char   * argv[])
 5  {
 6     int  sparse[ 5 ][ 10 ] =     { 0 0 1 0 0 0 0 0 0 0 ,
 7                            0 0 0 9 0 0 0 0 0 0 ,
 8                            0 0 0 0 0 2 0 0 0 0 ,
 9                            0 0 0 0 3 0 0 0 0 0 ,
10                            0 0 0 0 0 0 0 6 0 0  }; // 稀疏矩阵 
11     int  compress[ 6 ][ 3 ];  // 压缩数组 
12     int  i,j,k;
13    k = 1 ;
14    compress[ 0 ][ 0 =   5 ; // 数组sparse有5行 
15    compress[ 0 ][ 1 =   10 ; // 数组sparse 有10列 
16    compress[ 0 ][ 2 =   5 // 数组sparse有5个元素 
17     for (i = 0 ; i < 5 ; i ++ // 二维数组遍历 
18    {
19       for (j = 0 ; j < 10 ; j ++ )
20      {
21          if (sparse[i][j]  !=   0 // 元素没被使用 
22         {
23           compress[k][ 0 =  i; // 存储行数 
24           compress[k][ 1 =  j; // 存储列数 
25           compress[k][ 2 =  sparse[i][j]; // 存储元素值 
26           k ++ ; // 下一行 
27         }      
28      }       
29    }
30     for (i = 0 ; i < 6 ; i ++ )   // 压缩数组输出 
31    {
32       for (j = 0 ; j < 3 ; j ++ )
33      {printf( " %3d " ,compress[i][j]);}
34      printf( " \n " );
35    }
36                           
37                           
38    system( " PAUSE " );    
39     return   0 ;
40  }
41 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值