没有合适的资源?快使用搜索试试~ 我知道了~
数据结构作业系统-第五章答案.doc
0 下载量 175 浏览量
2022-12-21
00:11:28
上传
评论
收藏 30KB DOC 举报
温馨提示
试读
7页
数据结构作业系统-第五章答案.doc
资源推荐
资源详情
资源评论
.
精品文本
5.21④ 假设稀疏矩阵 A 和 B 均以三元组表作为存储结构。
试写出矩阵相加的算法,另设三元组表 C 存放结果矩阵。
要求实现以下函数:
Status AddTSM(TSMatrix A,TSMatrix B,TSMatrix &C);
/* 三元组表示的稀疏矩阵加法: C=A+B */
稀疏矩阵的三元组顺序表类型 TSMatrix 的定义:
#define MAXSIZE 20 // 非零元个数的最大值
typedef struct {
int i,j; // 行下标,列下标
ElemType e; // 非零元素值
}Triple;
typedef struct {
Triple data[MAXSIZE+1]; // 非零元三元组表,data[0]未用
int mu,nu,tu; // 矩阵的行数、列数和非零元个数
}TSMatrix;
Status AddTSM(TSMatrix A,TSMatrix B,TSMatrix &C)
/* 三元组表示的稀疏矩阵加法: C=A+B */
{
int k=1,n=1,p=1;
ElemType ce;
if(A.mu!=B.mu||A.nu!=B.nu)return ERROR;
while(k<=A.tu&&n<=B.tu)
{
if(A.data[k].i==B.data[n].i&&A.data[k].j==B.data[n].j)
{
ce=A.data[k].e+B.data[n].e;
if(ce)
{
C.data[p].i=A.data[k].i;
C.data[p].j=A.data[k].j;
C.data[p].e=ce;
p++;
//printf("%d,,%d ",ce,C.data[p-1].e);
}
k++;n++;
}
else if(A.data[k].i<B.data[n].i||A.data[k].i==B.data[n].i&&A.data[k].j<B.data[n].j)
{
C.data[p].e=A.data[k].e;
C.data[p].i=A.data[k].i;
资源评论
黑色的迷迭香
- 粉丝: 724
- 资源: 4万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功