- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                两个稀疏矩阵三元组相加
                    两个稀疏矩阵三元组相加
当稀疏矩阵A和B均以三元组表作为存储结构时,试写出矩阵相加的算法,其结果存放在三元组表C中。 解:这个算法有点繁,要考虑到两个稀疏矩阵的非零元素不是一一对应的,在建立新的三元组表C时,为了使三元组元素仍按行优先排列,所以每次插入的三元组不一定是A的,按照矩阵元素的行列去找A中的三元组,若有,则加入C,同时,这个元素如果在B中也有,则加上B的这个元素值,否则这个值就不变 如果A中没有,则找B,有则插入C,无则查找下一个矩阵元素。
当稀疏矩阵A和B均以三元组表作为存储结构时,试写出矩阵相加的算法,其结果存放在三元组表C中。 
解: 
  矩阵相加就是将两个矩阵中同一位置的元素值相加。由于两个稀疏矩阵的非零元素按三元组表形式存放,在建立新的三元组表C时,为了使三元组元素仍按行优先排列,所以每次插入的三元组不一定是A的,按照矩阵元素的行列去找A中的三元组,若有,则加入C,同时,这个元素如果在B中也有,则加上B的这个元素值,否则这个值就不变;如果A中没有,则找B,有则插入C,无则查找下一个矩阵元素。 
  #define   MaxSize   10   //用户自定义 
  typedef   int   DataType;   //用户自定义 
  typedef   struct 
   {   //定义三元组 
    int   i,j; 
    DataType   v; 
   }TriTupleNode; 
  typedef   struct 
   {   //定义三元组表 
    TriTupleNode   data[MaxSize]; 
    int   m,n,t;//矩阵行,列及三元组表长度 
   }TriTupleTable; 
  //以下为矩阵加算法   
  void   AddTriTuple(   TriTupleTable   *A,   TriTupleTable   *B,   TriTupleTable   *C) 
   {//三元组表表示的稀疏矩阵A,B相加 
    int   k,l; 
    DataType   temp; 
    C- m=A- m;//矩阵行数 
    C- n=A- n;//矩阵列数 
    C- t=0;   //三元组表长度 
    k=0;   l=0; 
    while   (k A- tl B- t) 
     {if((A- data[k].i==B- data[l].i)(A- data[k].j==B- data[l].j)) 
       {temp=A- data[k].v+B- data[l].v; 
        if   (!temp)//相加不为零,加入C 
         {C- data[c- t].i=A- data[k].i; 
          C- data[c- t].j=A- data[k].j; 
          C- data[c- t++].v=temp; 
         } 
        k++;l++;  
       } 
     if   ((A- data[k].i==B- data[l].i)(A- data[k].j B- data[l].j)) 
       ||(A- data[k].i B- data[l].i)//将A中三元组加入C 
      {C- data[c- t].i=A- data[k].i; 
       C- data[c- t].j=A- data[k].j; 
       C- data[c- t++].v=A- data[k].v; 
       k++; 
      } 
     if   ((A- data[k].i==B- data[l].i)(A- data[k].j B- data[l].j)) 
       ||(A- data[k].i B- data[l].i)//将B中三元组加入C 
      {C- data[c- t].i=B- data[l].i; 
       C- data[c- t].j=B- data[l].j; 
       C- data[c- t++].v=B- data[l].v; 
       l++;  
      } 
     } 
    while   (k A- t)//将A中剩余三元组加入C 
     {C- data[c- t].i=A- data[k].i; 
      C- data[c- t].j=A- data[k].j; 
      C- data[c- t++].v=A- data[k].v
                您可能关注的文档
- 《逆转裁判1》全剧情攻略.doc
- 《透镜及其应用》的复习课教案及教学设计_初中物理在线_教案中心.doc
- 《道商》第一章总篇之管理千古扁船风骚客.doc
- 《那一刻_我为你——-》作文指导.doc
- 《间架结构九十二法》清_黄自元.doc
- 《青海省“四区两带一线”发展规划纲要》解读.doc
- 《饮食科学》星芒号1.doc
- 《高等数学》教学大纲 - 广西大学.doc
- 《龙族设定全解析》.doc
- 『人生感悟』总有一次流泪 会让我们瞬间长大.doc
- 2025-2026普通高中英语学业水平考试复习手册专题04 动词语态(原卷版).doc
- 2025-2026普通高中英语学业水平考试复习手册专题05 非谓语动词(原卷版).doc
- 2025-2026普通高中英语学业水平考试复习手册专题08 名词性从句(原卷版).doc
- 2026年广东高考数学总复习:专题08 立体几何初步(知识梳理+考点精讲)(原卷版).doc
- 2026年广东省春季高考语文试卷试题及答案详解(精校打印版).doc
- 2026年广东高考数学总复习:专题07 解三角形和复数(知识梳理+考点精讲)(原卷版).doc
- 2026年广东高考数学总复习:专题01 集合与常用逻辑用语(知识梳理+考点精讲)(原卷版).doc
- 2026年广东高考数学总复习:专题02 不等式(知识梳理+考点精讲)(原卷版).doc
- 5年(2021-2025)上海高考数学真题分类汇编:专题06 解三角形 原卷版.doc
- 5年(2021-2025)上海高考数学真题分类汇编:专题07 函数的应用 原卷版.doc
最近下载
- 石油化工金属管道工程施工质量验收规范.pdf VIP
- 干部履历表(199版A4).doc VIP
- 危险品车辆挂靠协议范本6篇.docx VIP
- 2025年遵义市大数据发展管理局面向基层公开选调2名事业单位工作人员笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx VIP
- 虚拟电厂建设方案.pptx VIP
- 《建设工程安全生产管理条例》最新版全文.docx VIP
- (学校安全网格化管理实施方案.doc VIP
- 人教版七年级上数学期中试卷(数学试卷新课标人教版七年级上).doc VIP
- ANSI_ISEA 105-2016国外国际标准.pdf VIP
- GB50645-2011 石油化工绝热工程施工质量验收规范.docx VIP
 原创力文档
原创力文档 
                        

文档评论(0)