#include"stdio.h" #include"string.h" struct Maxtrix{ int row; int col; int data; }; const int MAXN = 100; int j; main(){ struct Maxtrix mtr[MAXN]; struct Maxtrix newMtr[MAXN]; memset(newMtr,0,sizeof(newMtr)); int count[MAXN]; memset(count,0,sizeof(count)); int pos[MAXN]; memset(pos,0,sizeof(pos)); int i=1; int maxCol=0; printf("%s\n","输入原来矩阵(格式:row colum data)输入0 0 0表示结束"); while(scanf("%d%d%d",&mtr[i].row,&mtr[i].col,&mtr[i].data)!=EOF&&i<100){ if(mtr[i].row==0)break; maxCol=(maxCol<mtr[i].col)?mtr[i].col:maxCol; //统计各列数据个数 count[mtr[i].col]++; i++; } for(j=1;j<=maxCol;j++){ if(j==1){ pos[j]=1; }else{ pos[j]=pos[j-1]+count[j-1]; } } int post; //快速转置 for(j=1;j<i;j++){ post = pos[mtr[j].col]; newMtr[post].row = mtr[j].col; newMtr[post].col = mtr[j].row; newMtr[post].data = mtr[j].data; pos[mtr[j].col]++; } //打印转置后的矩阵 printf("%s\n","转置后的矩阵为:"); for(j=1;j<i;j++){ printf("%d %d %d\n",newMtr[j].row,newMtr[j].col,newMtr[j].data); } return 0; }
相关推荐
#######3稀疏矩阵快速转置........
数据结构,稀疏矩阵快速转置c语言算法,时间复杂性为O(n+t)。
数据结构一书中的快速转置算法 结构清晰 用户界面友好
c数据结构实验 稀疏矩阵三元压缩存储 稀疏矩阵快速转置
详细讲解三元组稀疏矩阵快速转置C语言算法,一看就会
关于矩阵转置 关于矩阵的快速转置算法 快速矩阵转置).txt
数据结构——三元组稀疏矩阵快速转置法
稀疏矩阵快速转置,完整的可以运行的程序.
输入: 稀疏矩阵的行数、列数、非零元个数(三个数都大于0) 以行为主序输入稀疏矩阵三元组表 输出: 辅助数组num[ ] 辅助数组cpot[ ] 以行为主序输出对应的转置矩阵三元组表
矩阵的转置与快速转置皆有,遍历输出对比也在其中,有需要的自取,保证真是可用,小白也能入门!
用二维三列数组表示稀疏矩阵,实现矩阵的转置和相乘
广义表的应用--稀疏矩阵的快速转置(三元组)
矩阵的压缩存储--三元组顺序表(矩阵的转置)通过这种存储方式实行转置,让其更好的学习这种存储形式。解决思路: 将矩阵行、列维数互换 将每个三元组中的i和j相互调换 重排三元组次序
稀疏矩阵三元组的快速转置(VC++源程序) 稀疏矩阵三元组的快速转置(VC++源程序)
稀疏矩阵相加、相乘和转置(用三元组实现)
快速矩阵转置
三元组表形式输入的稀疏矩阵快速转置严格按照严蔚敏版算法实现 带有注释和算法分析
数据结构——矩阵全文共7页,当前为第1页。数据结构——矩阵全文共7页,当前为第1页。... 实现矩阵快速转置。 实验步骤: 实现矩阵压缩存储。 ( 静态数组压缩存储或直接输入矩阵非 0 元均可 ) 2. 实现矩阵转置算法
键盘任意输入一个稀疏矩阵A(m*n),采用三元组存储方法求其转置矩阵B(n*m),并用快速转置算法实现该操作。