2_7.C
上传用户:wyn840322
上传日期:2007-01-13
资源大小:294k
文件大小:1k
源码类别:

数据结构

开发平台:

C/C++

  1. /* ======================================== */
  2. /*    程式实例: 2_7.c                    */
  3. /*    稀疏阵列之压缩的表示法                */
  4. /* ======================================== */
  5. void main()
  6. {
  7.    int sparse[5][10] = {          /* 稀疏阵列的定义   */
  8.                          0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
  9.                          0, 0, 0, 9, 0, 0, 0, 0, 0, 0,
  10.                          0, 0, 0, 0, 0, 2, 0, 0, 0, 0,
  11.                          0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
  12.                          0, 0, 0, 0, 0, 0, 0, 6, 0, 0 };
  13.    int compress[6][3];            /* 压缩阵列的宣告   */
  14.    int i,j,k;
  15.    k = 1;                         /* 设定变数初值     */
  16.    compress[0][0] = 5;            /* 阵列sparse有5列  */
  17.    compress[0][1] = 10;           /* 阵列sparse有10行 */
  18.    compress[0][2] = 5;            /* 阵列使用5个元素  */
  19.    for ( i = 0; i < 5; i++ )      /* 二维阵列的走访   */
  20.       for ( j = 0; j < 10; j++ )
  21.          if ( sparse[i][j] != 0 ) /* 元素有没有使用   */
  22.          {
  23.             compress[k][0] = i;   /* 储存列数         */
  24.             compress[k][1] = j;   /* 储存行数         */
  25.             /* 储存元素值 */
  26.             compress[k][2] = sparse[i][j];
  27.             k++;                  /* 下一列           */
  28.          }
  29.    for ( i = 0; i < 6; i++ )      /* 压缩阵列的列印   */
  30.    {
  31.       for ( j = 0; j < 3; j++ )
  32.          printf("%2d ",compress[i][j]);
  33.       printf("n");               /* 换行             */
  34.    }
  35. }