稀疏矩阵A、B均采用三元组顺序表表示,验证实现矩阵A快速转置算法,并设计、验证矩阵A、B相加得到矩阵C的算法。

数据结构实验题目:

稀疏矩阵A、B均采用三元组顺序表表示,验证实现矩阵A快速转置算法,并设计、验证矩阵A、B相加得到矩阵C的算法。

(1)从键盘输入矩阵的行数和列数,随机生成稀疏矩阵。
(2) 设计算法将随机生成的稀疏矩阵转换成三元组顺序表形式存储。
(3) 设计算法将快速转置得到的与相加得到的三元组顺序表分别转换成矩阵形式。
(4) 输出随机生成的稀疏矩阵A、B及其三元组顺序表、快速转置得到的与相加得到的三元组顺序表及其矩阵形式。

  1. 从键盘输入矩阵的行数和列数,随机生成稀疏矩阵。(老师要求不能用二维数组去贮存矩阵)
    也就是说直接生成三元组
//动态随机生成三元组
TSMatrix Romand(int m,int n){
   
	TSMatrix M;
	int t=1;
	int num[100]={
   0};//记录数组位置是否是非0元
	M.mu=m;
    M.nu=n;
    M.tu=(int)(m*n*factor)+1;//factor为稀疏因子
	srand((unsigned)time(0));
	while(t!=M.tu+1){
   
		M.data[t].i = rand() % m+1;
		M.data[t].j = rand() % n+1;
		if(num[(M.data[t].i-1)*n+M.data[t].j] == 0){
   //如果该位置没有数据,属于0元
			M.data[t].v = rand() % 10+1;
			t++;
			num[(M.data[t].i-1)*n+M.data[t].j] = 1;
		}  
	}
	//对三元组排序
	for(int i=1;i<=M.tu;i++){
   
		for(int j = i+1;j<=M.tu;j++){
   
			if((M.data[i].i > M.data[j].i)||(M
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值