⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5_1.cpp

📁 统计稀疏数组有效元素个数这个算法可以打印稀疏数组数据内容和打印压缩数组数据内容
💻 CPP
字号:
#include<stdio.h>
#define M 9
#define N 7
#define MAX 30

int data[M][N]=
{
	{5,0,0,0,0,0,0},
	{0,0,3,0,0,0,0},
	{0,0,0,6,0,0,0},
	{0,0,0,0,0,0,0},
	{0,9,0,0,0,0,0},
	{0,0,0,8,0,0,0},
	{0,0,0,0,0,1,0},
	{0,0,0,0,6,0,0},
};
int i,j;
int count=0;
int index=1;

struct node
{ 
     int row,col;               // 非零元的行下标和列下标
     int value;                    // 非零元值
}; 
typedef struct node NODE;
NODE max[MAX],b[MAX],a[MAX];


/*统计稀疏数组有效元素个数*/
void stastic()
{
	for(i=0;i<M;i++)
	 for(j=0;j<N;j++)
	   if(data[i][j]!=0)
		   count++;
}

/*初始化max[0]数据*/
void initmax()
{
	max[0].row=6;
	max[0].col=6;
	max[0].value=count;
}



/*输入三元组数据*/
void input_CompressData()
{
	 for(i=0;i<M;i++)
	  for(j=0;j<N;j++)
	   if(data[i][j]!=0)
	   { max[index].row=i;
	     max[index].col=j;
		 max[index].value=data[i][j];
		 index++;
	   }
}

/*打印稀疏数组数据内容*/
void print_data()
{
	printf("稀疏数组数据内容:\n\n");
	for(i=0;i<M;i++)
	  for(j=0;j<N;j++)
	  {
		  printf("%d  ",data[i][j]);
		  if((j+1)%N==0)
			  printf("\n");
	  }
}

/*打印压缩数组数据内容*/
void print_CompressData()
{
	printf("\n压缩数组数据内容:\n");
	for(i=0;i<=count+1;i++)
		printf("%d %d  %d  %d\n",i,max[i].row,max[i].col,max[i].value);
}
void main()
{
 initmax();
 input_CompressData();
 stastic();
 print_data();
 print_CompressData();	
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -