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

📄 file42.c

📁 数据结构的三元组顺序表来实现稀疏矩阵的快速转置 C语言版 有解压的密码 请大家小心用好 压缩文件有密码 源码太简单
💻 C
字号:
#include<stdio.h>
#define MAXSIZE 12
typedef int Elemtype;
typedef struct{
  int i,j;
  Elemtype e;
}Triple;
typedef struct{
   Triple data[MAXSIZE];
   int mu,nu,tu;
}TSMatrix;
void main()
{int CreatSparseMatrix();
 CreatSparseMatrix();
 getch();
}
int CreatSparseMatrix()
{int FastTransposeSMatrix(TSMatrix);
 TSMatrix M;
 int k,a,b,flag;
 M.mu=3;
 M.nu=3;
 scanf("%d",&M.tu);
 if(M.tu<=0)
 return 0;
 for(k=0;k<M.tu;++k)
 {scanf("%d%d",&M.data[k].i,&M.data[k].j);
  if(M.data[k].i<0||M.data[k].i>=M.mu||M.data[k].j<0||M.data[k].j>=M.nu)
  return 0;
  scanf("%d",&M.data[k].e);
  }
  for(a=0;a<M.mu;a++)
   { for(b=0;b<M.nu;b++)
      {flag=0;
       for(k=0;k<M.tu;k++)
	if(a==M.data[k].i&&b==M.data[k].j)
       {   printf("%d ",M.data[k].e);
	   flag=1;
	   }
	if(flag==0)
	printf("0 ");
	}
	printf("\n");
	}
   printf("\n");
  FastTransposeSMatrix(M);
  return 1;
}
int FastTransposeSMatrix(TSMatrix M)
{TSMatrix T;
 int num[3],cpot[3];
 int col,t,p,q,a,b,k,flag;
 T.mu=M.nu;
 T.nu=M.mu;
 T.tu=M.tu;
 printf("-----------------------------------------\n");
 if(T.tu){
 for(col=0;col<M.nu;++col)
 num[col]=0;
 for(t=0;t<M.tu;++t)
 ++num[M.data[t].j];
 cpot[0]=1;
 for(col=1;col<M.nu;++col)
 cpot[col]=cpot[col-1]+num[col-1];
 for(p=0;p<M.tu;++p)
 {  col=M.data[p].j;
    q=cpot[col];
    T.data[q].i=M.data[p].j;
    T.data[q].j=M.data[p].i;
    T.data[q].e=M.data[p].e;
    ++cpot[col];
    }
 }
 for(a=0;a<T.mu;a++)
 { for(b=0;b<T.nu;b++)
    {flag=0;
     for(k=0;k<T.tu;k++)
      if(a==T.data[k].i&&b==T.data[k].j)
       { printf("%d ",T.data[k].e);
	  flag=1;
	   }
     if(flag==0)
     printf("0 ");
    }
    printf("\n");
    }
 return 1;
 }

⌨️ 快捷键说明

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