使用数组和指针统计成绩java_第五章 数组和广义表

第五章数组和广义表

一、稀疏矩阵

1.题目要求:

矩阵在工程计算上的应用非常广泛。本题目要求对稀疏矩阵完成加法运算。

本题目要求用以下存储方法表示稀疏矩阵,即:以一维数组顺序存放非零元素的行号、列号和数值,行号-1作为结束标志。例如,如图所示的稀疏矩阵A,则存储在一维数组B 中后内容为:

B[0]=0,B[1]=2,B[2]=3,B[3]=4,B[4]=6,B[5]=5,B[6]=3,B[7]=4,B[8]=7,B[9]=5,B[10] =1,B[11]=9,B[12]=-1

0 0 3 0 0 0 0 0

0 0 0 0 0 0 5 0

A= 0 0 0 0 0 0 0 0

0 0 0 0 7 0 0 0

0 0 0 0 0 0 0 0

0 9 0 0 0 0 0 0

假设有两个如上方法存储的稀疏矩阵A和B,它们均为m行n列,分别存放在数组A和B中,要求编写求矩阵加法如C=A+B的算法,C矩阵存放在数组C中。

2.算法分析:

根据设计要求,首先需要解决如何将一个稀疏矩阵对应存储到一个一维数组中,然后再进行矩阵加法时依次扫描矩阵A和B的列值,并以行优先。当行列相同时,将第三个元素值相加的和以及行列号三个元素存入结果数组C.中;不相同时,将A或B的值三个元素直接存入结果数组中。

二、矩阵运算

1.题目要求:

利用C语言实现:

1、矩阵的转置、相加和相乘运算;

2、将稀疏矩阵转换为三元组后实现其转置、查找、相加和相乘运算。

Java语言实现部分见网站。

2.算法分析:

1.矩阵的转置、相加和相乘:

矩阵采用二维数组存储,一个m*n的二维数组a m*n转置,就是将其行、列互换,形成一个n*m的二维数组b n*m。

二维数组的相加运算,是将两个数组对应位置上的元素相加,这要求被加的两个数组维数相同,且每一维中所含的元素数目相同。

一个m*t的二维数组a m*t与一个t*n的数组b t*n相乘后的结果是一个m*n的二维数组c m*n。

2.稀疏矩阵的转换、转置、查找、相加和相乘:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值