#include<stdio.h>          //栈的顺序存储
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
#define MAXSIZE   100
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define SElemType int
#define OK 1
#define ERROR 0
#define  TRUE  1
#define  FALSE 0
#define  OK    1
#define  ERROR 0
#define  INFEASIBLE -1
#define  OVERFLOW   -2
#define  STACK_INIT_SIZE  100
#define  STACKINCREMENT    10typedef  struct                 //定义三元组
{int hang,lie;int zhi;
}SAN;
typedef struct
{SAN data[MAXSIZE];int mu,nu,tu;
}SANYUAN;
void zhuanzhi(SANYUAN M,SANYUAN *T)      //对三元组进行转置
{int col,p,q,t;     int num[MAXSIZE],cpot[MAXSIZE];T->mu=M.nu;T->nu=M.mu;T->tu=M.tu;if(T->tu){for(col=1;col<=M.nu;++col) num[col]=0;for(t=1;t<=M.tu;++t) ++num[M.data[t].lie];     cpot[1]=1;for(col=2;col<=M.nu;++col)        cpot[col]=cpot[col-1]+num[col-1];for(p=1;p<=M.tu;++p)       { col=M.data[p].lie;q=cpot[col];T->data[q].hang=M.data[p].lie; T->data[q].lie=M.data[p].hang;T->data[q].zhi=M.data[p].zhi;++cpot[col];       }}
}void output(SANYUAN *M)           //输出三元组
{int i,j;int t=1;for(i=1;i<=M->mu;i++){for(j=1;j<=M->nu;j++){if(M->data[t].hang==i&&M->data[t].lie==j){printf("%d   ",M->data[t].zhi);t++;}else printf("0   ");}printf("\n");}
}
int main()
{SANYUAN  A,T;int k;printf("输入矩阵大小\n");printf("行:");scanf("%d",&A.mu);printf("列:");scanf("%d",&A.nu);printf("非零元素个数:");scanf("%d",&A.tu);printf("输入三元组表:\n");                       //顺序输入三元组for(k=1;k<=A.tu;k++){scanf("%d %d %d",&A.data[k].hang,&A.data[k].lie,&A.data[k].zhi);}printf("原矩阵\n");output(&A);zhuanzhi(A,&T);printf("转置后的矩阵:\n");output(&T);return 0;
}

稀疏矩阵快速转置核心代码相关推荐

  1. 稀疏矩阵快速转置c语言代码(详解)

    通过下列代码解释: 这么说吧,刚开始我也不是很理解.在经过一段时间研究后才枉然大悟. 1.首先说下,在以三元组表的形式存矩阵元素时.如果是以行向量来存的话,在输入与输出时,同一行中的数据,列不一定按顺 ...

  2. c语言三元组稀疏矩阵的转置实验报告,稀疏矩阵快速转置 数据结构实验报告

    南昌航空大学实验报告 课程名称: 数据结构 实验名称: 实验五 稀疏矩阵的存储和快速转置 班 级: 学生姓名: 学号: 指导教师评定: 签 名: 题目:假设稀疏矩阵A采用三元组表表示,编写程序实现该矩 ...

  3. 稀疏矩阵按列转置核心代码

  4. 用三元组存储稀疏矩阵,实现其快速转置c语言代码,稀疏矩阵三元组表快速转置(C语言实现)...

    本来准备昨天下午写的,但是因为去参加360众测靶场的考核耽搁了,靶场的题目还是挺基础的. 继续学习吧. 使用黑色墨水在白纸上签名就像由像素点构成的稀疏矩阵.如图4所示. 图4手写体签名 [问题]请将以 ...

  5. 【LB】稀疏矩阵的快速转置原理及其算法

    关于稀疏矩阵的快速转置法,首先得明白其是通过对三元表进行转置.如果误以为是对矩阵进行转置,毫无疑问就算你想破脑袋也想不出个所以然,别陷入死胡同了! 对于一个三元表,行为i,列为j,值为v.需将其i与j ...

  6. java三元组的快速转置_稀疏矩阵三元组快速转置(转poklau123写的很清楚)

    关于稀疏矩阵的快速转置法,首先得明白其是通过对三元表进行转置.如果误以为是对矩阵进行转置,毫无疑问就算你想破脑袋也想不出个所以然,别陷入死胡同了! 对于一个三元表,行为i,列为j,值为v.需将其i与j ...

  7. 用三元组存储稀疏矩阵及其快速转置

    用三元组存储稀疏矩阵及其快速转置 稀疏矩阵的三元组存储方式 快速转置算法 代码 稀疏矩阵的三元组存储方式 稀疏矩阵可以用一个三元组数组表示,数组每个元素是一个三元组,三元组形式为 (矩阵行号,矩阵列号 ...

  8. 稀疏矩阵转置 java代码_三元组稀疏矩阵的快速转置

    小问题却整了这么久,能力有待加强,要强烈区分三元组的列数与元素总数, 不能将他俩写混了 #include #define MAXSIZE 1250 #define OK 1 #define ERROR ...

  9. 5.3矩阵的压缩存储(稀疏矩阵转置和快速转置)

    在矩阵中有许多值相同的元素或者是零元素.有时为了节省存储空间,可以对这类矩阵进行压缩存储.所谓的压缩存储是指:为多个值相同的元值分配一个存储空间:对零元不分配空间. 5.32稀疏矩阵 在m*n的矩阵中 ...

最新文章

  1. 使用SpringBoot发送邮件 在本地测试是好的 放到服务器连接超时问题
  2. 关于ie,火狐,谷歌浏览器滚动条的隐藏以及自定义样式
  3. vuejs之【router-link】大全(二)
  4. AT2305-[AGC010D]Decrementing【博弈论】
  5. iphone开发之C++和Objective-C混编
  6. 关于阿克曼函数(akermann)非递归算法的一点见解 c++
  7. 电力-输配电知识汇总
  8. 西瓜书(机器学习周志华)公式详细推导
  9. java英语单词查询,输入一个单词根据字典查询单词意思
  10. 计算机知识动画片,这些好看的动画片里竟然藏着许多知识点!(内附2019年观影日历)...
  11. 我的世界虚无2可直连服务器IP,我的世界虚无世界服务器1.7.10
  12. 2021年中国中药创新药行业市场现状分析,医保中药扶持逐渐加强「图」
  13. 国家计算机职业技能鉴定4级考试内容详解
  14. 【电磁场】矢量分析基础
  15. 【光通信】常见光模块与光纤收发器说明及作用区别
  16. html网站meta标签大全
  17. Chrome好用插件推荐
  18. app营销实训报告_实习报告:软件销售实习报告
  19. 微信小程序开发需要多少钱?
  20. 基于CNN的多光谱数据遥感图像地物覆盖分类

热门文章

  1. mysql safe 关闭_新手请教,mysqld经常自动关闭是什么原因?-问答-阿里云开发者社区-阿里云...
  2. 使用Flutter一年后,这是我得到的经验
  3. 捷讯技术分享SSH 无法远程登录问题的处理办法汇总
  4. 智能家居数据获得美好生活的6种方法
  5. Apache和Tomcat的区别是什么?
  6. mongodb3.0的权限认证问题
  7. jquery笔记___返回值问题
  8. Openresty中使用LuaJit
  9. 网络规划与设计讨论会(第3期)
  10. ***产业链 安全新忧患