数据结构—矩阵的转置、快速转置

 #include<iostream>
#include<algorithm>

using namespace std;

#define MaxSize  12500
#define Col 30
#define Row 30

typedef bool Status;
 
bool t[1250][1250];//标记,避免重复输入

typedef struct{
   //稀疏矩阵三元表定义 
	int i, j;
	int e;
}Triple;

typedef struct{
   //记录矩阵 
	Triple data[MaxSize + 1];
	int  row, col, Size;
}TSMatrix;

void CreatMatrix(TSMatrix *M){
   
	int m, n, e;
	cout<<"请输入矩阵的行数、列数和非零元个数:";
	cin>>m>>n>>e;
	while(m * n < e){
   
		cout<<"输入错误,非零元素个数要小于等于行数乘列数,请从新输入:"; 
		cin>>m>>n>>e;
	} 
	cout<<"请继续输入三元组信息:";
	M->Size = e;
	M->col = m;
	M->row = n;
	int y1 = 0, y2 = 0;
	for(int i = 1; i <= e; i ++ ){
   
		int a, b, c;
		cin>>a>>b>>c;
		if(a > y1) y2 = 0;//如果行数递增了,就将标记列值y2记为0 
		while(t[a][b] == 1 || y1 > a || y2 > b){
   
			if(t[a][b] == 1) cout<<"输入错误,输入的下标重复,请重新输入!";
			else if(y1 > a) cout<<"输入错误,下标输入时要递增输入,请重新输入:";
			else
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值