栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C/C++简单的稀疏矩阵的两种行列换的方法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C/C++简单的稀疏矩阵的两种行列换的方法

你还能找到除此之外关于稀疏矩阵两种转置更细致的注释和能实现的代码嘛?

 
#include
#include//malloc需要的头文件 
using namespace std;
#define MAX 100    //定义的稀疏矩阵中最多只能有100个数字 ,但是好像本程序并没有用到 
#define R   4//定义行的元素数 
#define C   4//定义列的元素数 
typedef struct//每个稀疏矩阵的一个行 
{
	int row;//行号 
	int col;//列号 
	int e;//元素值 
}Node; 
//书上说不用内个第一行然后书上又把MAX+1了,我就很搞不懂为啥子,那你都说是在记录它的行数和列数了还加1是为什么?
//简直是大无语事件,我不管, 我就不按那样写,我知道是什么意思就行了,具体的实现方式就可能会稍微有点不同 
typedef struct
{
	int rows;//行 
	int cols;//列 
	int sumele;//元素总的个数 
	Node data[MAX]; //就是用来存储的每一行的元素的信息 
}Matrix;
void create(Matrix& a,int b[R][C]);//这个为求简便我直接把一个完整的数组放进主函数了,
//                                   然后此函数就是把一个函数体转换成稀疏矩阵 
void OutPut(Matrix a);
void zhuanzhi01(Matrix a);//普通的转置方法 
void zhuanzhi02(Matrix a);//快速转置
 

int main(void)
{
	//为了简单,我直接把一个数组写出来了 
int  a1[4][4] = {
		{ 1, 0, 3, 0 },
		{ 4, 0, 0, 0 },
		{ 5, 0, 0, 0 },
		{ 6, 0, 0, 9 }
	};	
    Matrix a; //创建一个稀疏矩阵 

   create(a,a1);//注意二维数组作为函数参数进行传递时,也是传递的是地址,但是在函数体里是这种格式 
    //   尽量把数组的R/C写上,书上说有的行其实是可以不写的,但建议写上           void  hanshu(a[R][C]) 
    cout<<"稀疏矩阵的第一种的转置后的结果如下"< 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/443792.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号