柠檬Ccc 发表于 2022-4-20 21:50:00

数组(完善代码)

步骤一,定义三元组存储的结构体类型
#include <stdio.h>
#define OK 1
#define TRUE 1
#define FALSE 0
#define ROWS 4
#define COLMUNS 4
typedef int Status;
typedef int ElemType;
/*三元组顺序表的类型定义*/
#define MAXSIZE 1000
#define MAXRC 1000



typedef struct
{
      int i,j;
      ElemType e;
}Triple;
typedef struct
{
      Triple data;
      int mu,nu,tu;
}TSMatrix;
步骤二,实现稀疏矩阵的三元组存储
   (1)建立三元组表
Status CreateM(TSMatrix *M,int a[],int row,int col)
{
      int i;
int k=0; //保存非零元素个数

      for(i = 0;i < row*col;i++)
                if(a != 0)
                {
                        /***完善下列代码****/
                }
      if(k) //if(k!=0)
      {
                /***完善下列代码***/
      }
      else
                return FALSE;
}      
(2)输出三元组表
void PrintM(TSMatrix* M)
{
      int k;      
      for(k = 0;k < M->tu;k++)
                printf("%4d%4d%4d\n",M->data.i,M->data.j,M->data.e);
}      
步骤三,编写主函数
int main(int argn,char *argv[])
{
      int a;
          int i,j;
          TSMatrix *H=(TSMatrix *)malloc(sizeof(TSMatrix)); //创建压缩数组H
          for(i=0;i< ROWS;i++)    //输入二维数组的元素值
      {
                for(j=0;j< COLMUNS;j++)
                {                        
                        scanf("%d",&a);
                }
      }
      
      CreateM(H,*a, ROWS, COLMUNS);
      PrintM(H);      

      return 0;
      
}
步骤四,求压缩比
假设二维矩阵的元素个数为n,非零元素的个数为m,则稀疏矩阵的压缩存储的压缩比为:
&=(n* sizeof(ElemType))/(m*sizeof (Triple))

编写一个函数求压缩存储的压缩比
float compressionRatio(TSMatrix *M)
{
      /****完善下列代码*****/
}
然后再主函数调用该函数,求压缩存储的压缩比,并输出结果。
int main(int argn,char *argv[])
{
                int a;
          int i,j;
          TSMatrix *H=(TSMatrix *)malloc(sizeof(TSMatrix)); //创建压缩数组H
          for(i=0;i< ROWS;i++)    //输入二维数组的元素值
                {
                        for(j=0;j< COLMUNS;j++)
                        {                        
                        scanf("%d",&a);
                }
      }
      
      CreateM(H,*a, ROWS, COLMUNS);
      PrintM(H);      

//调用压缩比函数,并输出结果
/****完善下列代码****/

      return 0;
      
}

yinda_peng 发表于 2023-3-20 14:43:19

沙发
页: [1]
查看完整版本: 数组(完善代码)