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

📄 rlsmatrix.h

📁 利用三元组顺序表表示稀疏矩阵
💻 H
字号:
#define MAXSIZE 400
#define MAXRC 20
typedef struct{
	int i,j;
	float e;
}Triple;
typedef struct{
	Triple data[MAXSIZE+1];
	int rpos[MAXRC+1];
	int mu,nu,tu;
}RLSMatrix;
Status CreatRLSMatrix(RLSMatrix &A)
{   
	int i,j,k=1,row;
	float e;
	int num[MAXRC+1];
	A.mu=0;A.nu=0;A.tu=0;
	for(i=0;i<=MAXSIZE;i++) //初始化矩阵元素
	{
		A.data[i].e=0.0;
		A.data[i].i=0;
		A.data[i].j=0;
	}
	printf("Input Matrix Row,Col(3 3):");
	fflush(stdin);
	scanf("%d %d",&A.mu,&A.nu);
	if(A.mu<1||A.nu<1) {printf("Row OR Col ERROR!\n");return ERROR;}
	printf("Input Element(i j e),end of (0 0 0):\n");
    scanf("%d %d %f",&i,&j,&e);
	while(i!=0||j!=0||e!=0)
	{   
		if(i<1||j<1) {printf("i OR j ERROR!\n");return ERROR;}
		if(i>A.mu||j>A.nu) {printf("INDEX OVERFLOW!\n");return ERROR;}  //判断矩阵越界
		if(A.tu>A.mu*A.nu) {printf("ELEMENT ERROR!\n");return ERROR;}   //判断矩阵越界
		if(k>MAXSIZE+1) return ERROR;                                   //判断矩阵越界
		A.data[k].i=i;
		A.data[k].j=j;
		A.data[k].e=e;
        scanf("%d %d %f",&i,&j,&e);
		k++;
		++A.tu;
	}
	for(row=1;row<=A.mu;++row) num[row]=0;                             //设定行链接
	for(k=1;k<=A.tu;++k) ++num[A.data[k].i];
	A.rpos[1]=1;
	for(row=2;row<=A.mu;++row) A.rpos[row]=A.rpos[row-1]+num[row-1];
	return OK;
}
Status PrintSMatrix(RLSMatrix M)
//按照通常形式显示矩阵
{ 
  int i,j;
  for(i=1;i<=M.mu;i++)
  {
	  for(j=1;j<=M.nu;j++)
	  {
		  if(i==M.data[M.rpos[i]].i&&j==M.data[M.rpos[i]].j)         //根据rpos进行非零元逐个扫描并显示,其他显示零
		  {
			  printf("%-.2f  ",M.data[M.rpos[i]].e);
			  M.rpos[i]++;
		  }
		  else
			  printf("0.00  ");
	  }
	  printf("\n");
  }
  return OK;
}
Status DestroySMatrix(RLSMatrix &M)                                   //矩阵销毁,将矩阵各参数置零
{
	int i;
	for(i=0;i<=MAXSIZE;i++)
	{
		M.data[i].i=0;
		M.data[i].j=0;
		M.data[i].e=0.0;
	}
	for(i=0;i<=MAXRC;i++)
	{
		M.rpos[i]=0;
	}
	M.nu=0;
	M.mu=0;
	M.tu=0;
	return OK;
}

⌨️ 快捷键说明

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