实验五数组及其应用

实验五数组及其应用

1.(必做题) 设计并实现稀疏矩阵运算器。
(1) 以三元组顺序表存储稀疏矩阵,实现两个矩阵的相加、相减与转置。
(2) 根据屏幕菜单的选择,可以进行稀疏矩阵的相加、相减与转置,且能进行输入数据出错的处理,例如参与相加运算的两个矩阵行数和列数不同,等等。
(3) 矩阵的输入、输出均为矩阵形式。

#include<stdio.h>

#define MAXSIZE 10000
typedef struct{
   
	int i,j,e;         //行下表和列下标 
	
}Triple;

typedef struct{
   
	Triple data[MAXSIZE+1];
	int mu,nu,tu;    //矩阵的行数,列数和非零元个数 
}TSMatrix; 

int FastTransposeSMatrix(TSMatrix M,TSMatrix &T)     //快速转置 
{
   
	//采用三元组顺序表存储表示,求稀疏矩阵M的转置矩阵T 
	int num[20];
	int cpot[20];
	int col,p,q;
	 T.mu=M.mu;
	 T.nu=M.nu;
	 T.tu=M.tu;
	 if(T.tu){
   
	 	for(col=1;col<=M.nu;++col)   //初始化num[] 
	 		num[col]=0;
	 	for(int t=1;t<=M.tu;++t)
	 		++num[M.data[t].j];      //求M中每一列含非零元的个数
		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].j;
			q=cpot[col];
			T.data[q].i=M.data[p].j;
			T.data[q].j=M.data[p].i;
			T.data[q].e=M.data[p].e;
			++cpot[col];
		 } 
	 }
	 
 } 
 
int TSMatrix_Add(TSMatrix A,TSMatrix B,TSMatrix &C)//稀疏矩阵加法 
{
   
	C.mu=A.mu;
	C.nu=A.nu;
	C.tu=0;
	int ce;
	int pa=1;
	int pb=1;
	int pc=1;
	if(A.mu != B.mu || A
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值