『西工大-数据结构-NOJ』 012-以三元组表为存储结构实现矩阵相加(耿5.7) 『西北工业大学』

在这里插入图片描述
在这里插入图片描述

解题思路:

这道题要求用三元组表的储存结构储存稀疏矩阵,并进行加法运算。
首先我们要了解一下为什么要用三元组表,对于一个稀疏矩阵,尤其是高维度时,如果以多维数组的形式开辟空间,会造成很大的不必要空间浪费,于是我们用三元组表,只存储稀疏矩阵中的非零元素,来达到储存稀疏矩阵的目的。
常见的三元组和三元组表的宏定义如下:

typedef struct{
   //定义三元组
    int i,j;
    int val;
}Triple;

typedef struct{
   //定义三元组表
    Triple *data;//多个三元组
    int mu,nu,tu;//最大行,最大列,有效元素个数
}TSMatrix;

再进行三元组操作的时候很重要的的一点是要注意三元组表的规范性,即三元组表中的三元组储存次序是按照:①行由低到高;②列由低到高 来储存的。
故本题的难点在于在进行三元组表储存到稀疏矩阵的加法运算时,不仅要利用旧三元组表的规范性,而且还要保证新三元组表的规范性,为实现这些我们要在加法运算中进行全面的分类执行。
具体操作见代码,代码中有部分注释。

题解代码:

#include<stdio.h>
#include<stdlib.h>

typedef struct{
   //定义三元组
    int i,j;
    int val;
}Triple;

typedef struct{
   //定义三元组表
    Triple *data;//多个三元组
    int mu,nu,tu;//最大行,最大列,有效元素个数
}TSMatrix;

void CreatTSMatrix(TSMatrix *p,int n){
   //申请一个容量为n的三元组表
    p->data = (Triple*)malloc(sizeof(Triple)*n);
    p->tu = n;
}

void AddTwoTSMatrix(TSMatrix *A, TSMatrix *B, TSMatrix *C){
   
    int i=0,j=0,sum,C_tu=0;
    while(i<A->tu && j<B->tu){
   //当还有AB均有值未进行加法运算
        if(
最低0.47元/天 解锁文章
西工大-数据结构-NOJ』 013-以十字链表存储结构实现矩阵相加(严5.27) 『西北工业大学
LanXiu_的博客
07-05 2320
解题思路: 这道题要求用十字链表的储存结构储存稀疏矩阵,并进行加法运算。 首先我们要了解一下为什么要用十字链表,对于一个稀疏矩阵,尤其是高维度时,如果以多维数组的形式开辟空间,会造成很大的不必要空间浪费,于是我们用十字链表,只存储稀疏矩阵中的零元素,来达到储存稀疏矩阵的目的。 当要进行矩阵的加、减、乘等运算时,有时零元素的位置会发生很大的变化,三元组表为保持以行或列序为主而需要大量移动元素。但十字链表就比较灵活,它在三元组表的基础之上多了两个指针域,指向同一行中的下一个零元素和同一列的下一个零元..
西工大NOJ数据结构理论——012.以三元组表为存储结构实现矩阵相加5.7
a15735748145a的博客
03-30 2670
西工大NOJ数据结构理论——012.以三元组表为存储结构实现矩阵相加5.7
数据结构12——以三元组表为存储结构实现矩阵相加5.7
chengchencheng的博客
05-29 4292
三元组表为存储结构实现矩阵相加5.7)Time Limit: 3000ms, Memory Limit: 10000KB , Accepted: 247, Total Submissions: 1092Description假设稀疏矩阵A和B均以三元组表作为存储结构。试编写矩阵相加的程序,另设三元组表C存放结果矩阵矩阵大小为m行n列(0&lt;m,n&lt;100)Input第一行输...
数据结构】NOJ012三元组表为存储结构实现矩阵相加5.7
weixin_45932570的博客
04-11 295
1. 题目 2. 代码 //3 3 //1 2 3 //3 2 1 //3 4 2 //1 1 4 //3 2 5 //3 4 1 #include <iostream> using namespace std; typedef int Elemtype; typedef struct{ int row, col; Elemtype e; }Triple; int main(int argc, char** argv) { int t1, t2; cin >>
三元组表为存储结构实现矩阵相加5.7)----------西工大 noj
xjsc01的博客
04-04 365
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct _Triple { int i; int j; int e; }Triple; typedef struct _Matrix { Triple* data; int* i_pos; int m, n,...
西北工业大学数据结构noj_1-6题
04-27
在“西北工业大学数据结构noj_1-6题”中,我们可以推测这是一系列与数据结构相关的编程练习题目,旨在帮助学生理解和应用各种数据结构。以下是基于这些题目可能涵盖的一些关键知识点的详细解释: 1. **线性数据结构...
西北工业大学-NOJ答案(附目录).docx
最新发布
05-11
西北工业大学-NOJ答案(附目录).docx
西北工业大学 C++程序设计 noj习题答案
10-19
西北工业大学 C++程序设计 noj习题答案》是一份针对C++程序设计课程的练习题解答集,包含了150道题目,旨在帮助学生深入理解C++编程语言,提升编程技能和解决问题的能力。这份资源按照题目的名字首字母排序,并...
西北工业大学数据结构实验报告
07-12
包含11次数据结构实验报告以及配套代码,结构完整,符合要求,实验成绩97分。 啰嗦几句: 更加建议大家自己写,我这个更多的是自己的资源存档 有问题的话私信,看到会回复 关于代码,因为当时比较仓促,还没有进行...
西北工业大学数据结构及实验答案.7z
05-12
本资源“西北工业大学数据结构及实验答案.7z”包含了37个数据结构相关的编程实验题目及其解决方案,这些方案已经经过验证能够正确运行并获得预期结果。这个压缩包对于正在学习或复习数据结构的学生来说,是一个宝贵...
利用三元组表对稀疏矩阵实现加法、减法及转置运算
05-12
利用三元组表对稀疏矩阵实现加法、减法及转置运算
稀疏矩阵相加、相乘和转置(用三元组实现
06-28
稀疏矩阵相加、相乘和转置(用三元组实现
西北工业大学NOJ数据结构012三元组表作为储存结构实现矩阵相加
npuyan的博客
05-26 1484
题意比较清晰,就是用三元组表储存的两个矩阵加一ha(真的很烦,代码打死我)思路分析:1.由于要相加的两个三元组表都是给拍好顺序的(很好,常好),所以只要用两个变量依次遍历两个三元组表就OK了,不需要深层查找是否有相符的2.设k指向A矩阵的某元素,i指向B矩阵的某元素,如果k的行列都与i相同,就把这两个元素加起来,如果和不为零,就把这个元素放进c,k++,i++3.如果k的行与i的行相同但是k的列...
12.以三元组表为存储结构实现矩阵相加
杳杳_柒的博客
06-23 788
/*#include <stdio.h> #include <stdlib.h> typedef struct { int row; int col; int num; }node; typedef struct { node matrix1[100]; node matrix2[100]; int cnt1; int cnt2; }mat...
稀疏矩阵--以三元组表为存储结构实现矩阵相加
qq_43252509的博客
06-28 1647
#include <iostream> #include <stdio.h> #include<stdlib.h> using namespace std; typedef struct Triple{ int i,j; //行号,列号 int num;//数值 }Triple; typedef struct TS{ ...
西北工业大学noj数据结构实验004稀疏矩阵加法
noj_h的博客
04-23 1272
这道题实现两个稀疏矩阵加法。笔者采用了结构体数组的定义形式存储矩阵。同时需要注意输出时候的顺序,还有当家和后的结果为零时删除这个节点。要说的都在注释里,话不多说上代码: #include<stdio.h> #include <stdlib.h> #define ok 1 #define error 0 #define max 1000 typedef struct { int hang; int lie; int data; }seq; typedef ..
12 以三元组表为存储结构实现矩阵相加 5.7
voice34的博客
06-06 702
题目 description: 假设稀疏矩阵 A 和 B 均以三元组表作为存储结构。试编写矩阵相加的程序,另设三元组表 C 存放结果矩阵矩阵大小为 m 行 n 列(0<m,n<100)。 input: 第一行输入 t1,t2(0<t1,t2<100) ,t1 和 t2 分别是矩阵 A 和 B 中零元素的个数,后面t1+t2 行分别输入 A 和 B 中的元素,用三元组表示。 output: 输出三元组表 C。 sample_input: 3 3 1 2 3 3 2 1 3 4 2
西工大NOJ数据结构实验——实验2.3:稀疏矩阵加法,用十字链表实现C=A+B
a15735748145a的博客
04-06 4453
西工大NOJ数据结构实验——实验2.3:稀疏矩阵加法,用十字链表实现C=A+B
NOJ数据结构012——以三元组存储结构实现矩阵相加
weixin_53068269的博客
04-10 521
本题练习三元组的应用。 思路较为简单,即比较两个三元组a、b行数列数后进行排序。 需要特别注意的是要考虑两个元素相加为0的情况,不能让这样的元素放在c中。 #include <stdio.h> #include <stdlib.h> typedef struct { int row,col; /*零元行下标、列下标*/ int data; /*零元数据*/ }Triple; typedef struct { Triple *elem; .
西北工业大学数据结构理论课noj第一题
11-15
西北工业大学数据结构理论课NOJ第一题要求学生实现一个简单的链表数据结构,包括链表的创建、插入、删除和遍历操作。要求使用C或C++语言编写程序,并且要求程序具有良好的模块化和可读性。 首先,我们需要定义一...

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 2021 最新GitHub 获取Token令牌 通过Token令牌 从本地push上传仓库的方法(详细图文) 10314
  • 『西工大-数据结构-NOJ』 001-顺序表的插入运算(耿2.4) 『西北工业大学』 3934
  • 『西工大-数据结构-NOJ』 003-顺序表的删除(严2.29) 『西北工业大学』 3810
  • 『西工大-数据结构-NOJ』 021-逆波兰表达式(耿7.38) 『西北工业大学』 3158
  • 『西工大-数据结构-NOJ』 026-二叉排序树的合并(严9.38) 『西北工业大学』 3015

分类专栏

  • 『西工大-数据结构-NOJ』 22篇
  • GitHub入门教程 12篇
  • Memo 4篇
  • 『算法』『数据结构』 6篇
  • Python Leetcode刷题 No.1-100 20篇

最新评论

  • 『西工大-数据结构-NOJ』 019-基于图的深度优先搜索策略(耿7.10) 『西北工业大学』

    Jse_NGU: 貌似不是G->vexs[v1] 而应该是G->vexs[v1在邻接表的下标]

  • 『西工大-数据结构-NOJ』 025-二叉排序树的插入和删除(严9.35、9.36和9.37) 『西北工业大学』

    2201_76039887: 有个疑问❓,可不可以不用指针的指针**T,而直接用*t来专递树的指针呢?

  • 『西工大-数据结构-NOJ』 001-顺序表的插入运算(耿2.4) 『西北工业大学』

    weixin_46008420: 请问noj的网址是多少

  • 『西工大-数据结构-NOJ』 019-基于图的深度优先搜索策略(耿7.10) 『西北工业大学』

    嗨嗨害 嗨害: 第50行为什么要g节点没被访问过呢

  • 『西工大-数据结构-NOJ』 013-以十字链表为存储结构实现矩阵相加(严5.27) 『西北工业大学』

    LWK999999: 相加函数有个地方写错了,应该是q->right=p->right

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 『西工大-数据结构-NOJ』 018-建立二叉树的二叉链表(严6.65) 『西北工业大学』
  • 2022 Github 上传仓库
  • 2021 最新GitHub 通过Token令牌 从本地push更新项目的方法
2023年1篇
2022年5篇
2020年58篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

PHP网站源码大浪网站设计盐田百搜标王南山seo深圳网站推广罗湖关键词按天收费南澳网站制作松岗网站推广坑梓网站搭建布吉网站优化按天计费坑梓网站开发永湖至尊标王观澜英文网站建设龙岗优秀网站设计吉祥百搜标王光明优秀网站设计东莞网站seo优化深圳建设网站广州外贸网站建设南联网页设计福永网络营销坪山关键词排名包年推广惠州百搜标王布吉网站优化按天收费爱联百度seo广州网站推广方案民治网站设计模板宝安网站排名优化大浪阿里店铺托管福永建设网站大运模板网站建设歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化