(zhn)现在的位置Q?/strong> 跨考网频道考研报名正文

数据l构W五章算法设计题[1]_跨考网

最后更新时_2011-11-22 13:19:04
辅导评Q?a target="_blank" rel="nofollow">暑期集训 在线咨询
复习紧张Q焦头烂额?逆风轻袭Q来跨考秋季集训营Q帮你寻Ҏ(gu)Q定Ҏ(gu)Q?/span> 了解一?>

      1. 以三元组表存贮的E疏矩?/span>AQ?/span>B非零元个数分别ؓm?/span>n。试用类PASCAL语言~写旉复杂度ؓOQ?/span>m+nQ的法矩?/span>B加到矩阵A上去?/span>A的空间够大Q不另加辅助I间。要求描q所用结构。?a target="_blank">北京工业大学 1997 ?/span> (10?/span>)?/span>

  【参考答案?/span>

  [题目分析]讄疏矩늚非零元素的三元组以行序ؓd储在三元l表中。矩늚相加是对应元素的相加。对两非零元素相加,若行号不{,则行号大者是l果矩阵中的非零元素。若行号相同Q则列号大者是l果中一非零元素Q若行号列号相同Q若对应元素g和ؓӞ不予存储Q否则,作ؓC元组存到三元l表中。题目中要求旉复杂度ؓOQ?/span>m+nQ。因此需从两个三元组表的最后一个元素开始相加。第一个非零元素放?/span>A矩阵三元l表的第m+n位置上。结果的三元l至多是m+n个非零元素。最后若发生对应元素相加和ؓ零的情况Q对三元l表中元素要q行整理Q以便ɽW一个三元组存放在下?/span>1的位|上?/span>

  CONST maxnum=大于非零元素数的某个帔R

  TYPE tuple=RECORD

  i,jQ?/span>integerQ?/span> vQ?/span>elemtpQ?/span>

  ENDQ?/span>

  sparmattp=RECORD

  muQ?/span>nuQ?/span>tuQ?/span>integerQ?/span>

  data: ARRAY[1..maxnum] OF tupleQ?/span>

  ENDQ?/span>

  PROC AddMatrixQ?/span>VAR AQ?/span>sparmattpQ?/span>BQ?/span>sparmattpQ;

  // E疏矩?/span>A?/span>B各有m?/span>n个非零元素,以三元组表存储?/span>A的空间够大Q本法实现两个E疏矩늛加,l果攑ֈA中?/span>

  L:=mQ?/span>p:=nQ?/span>k:=m+nQ?/span>// L,p?/span>AQ?/span>B三元l表指针Q?/span>k为结果三元组表指针(下标Q?/span>

  A.tu:=m+nQ?/span>// 暂存l果矩阵非零元素个数

  WHILEQ?/span>L?/span>1Q?/span>ANDQ?/span>p?/span>1Q?/span>DO

[CASE // 行号不等Ӟ行号大者的三元lؓl果三元l表中一V?/span>

A.data[L].i>B.data[p].iQ?/span>A.data[k]:=A.data[L]Q?/span>L:=L-1Q?/span>// A中当前项为结果项

  A.data[L].i<B.data[p].iQ?/span>A.data[k]:=B.data[p]Q?/span>p:=p-1Q?/span>//B中当前项为结果当前项

  A.data[L].i=B.data[p].iQ?/span>

  CASE //行号相等Ӟ比较列号

  A.data[L].j>B.data[p].jQ?/span>A.data[k]:=A.data[L]Q?/span>L:=L-1Q?/span>

  A.data[L].j<B.data[p].jQ?/span>A.data[k]:=B.data[p]Q?/span>p:=p-1Q?/span>

  A.data[L].j=B.data[p].jQ?/span>IF A.data[L].v+B.data[p].v?/span>0 THEN

  [A.data[L].v=A.data[L].v+ B.data[p].vQ?/span>

  A.data[k]:= A.data[L]Q?/span>]

  L:=L-1Q?/span>p:=p-1Q?/span>

  ENDCQ?/span> //l束行号相等时的处理

  ENDCQ?/span> //l束行号比较处理?/span>

  k:=k-1Q?/span> //l果三元l表的指针前U(?/span>1Q?/span>

  ]//l束WHILE循环?/span>

  WHILE p>0 DO[A.data[k]:=B.data[p]Q?/span>k:=k-1Q?/span>p:=p-1Q?/span>] //处理B的剩余部分?/span>

  WHILE L>1 DO[A.data[k]:=A.data[L]Q?/span>k:=k-1Q?/span>L:=L-1Q?/span>] //处理A的剩余部分?/span>

  IF k>1 THEN //E疏矩늛应元素相加时Q有和ؓ零的元素Q因而元素L<m+n?/span>

  [FOR p:=k TO m+n DO A[p-k+1]:=A[p]Q?/span>// 三元l前U,使第一个三元组的下标ؓ1?/span>

  A.tu=m+n-k+1Q?/span>] // 修改l果三元l表中非零元素个数?/span>

  ENDPQ?/span> // l束addmatrix

  [法讨论]法中三元组的赋值是“成l赋值”,可用行倹{列值和元素值的三个赋值句代替?/span>A?/span>B的三元组表的当前元素的指?/span>L?/span>pQ在每种情况处理后均有修改,而结果三元组表的指针k?/span>CASE语句后统一处理Q?/span>k:=k-1Q。算法在B的第一个元素“大于?/span>A的最后一个元素时Q时间复杂度最佳ؓOQ?/span>nQ,最差情冉|每个元素都移动(赋|了一ơ,且出C和ؓ零的元素Q致使最后(m+n-k+1Q个元素向前q移一ơ,旉复杂度最差ؓOQ?/span>m+nQ?/span>

跨考考研评

班型 定向班型 开班时?/td> 高定?/td> 标准?/td> 评介绍 咨询
U季集训 冲刺?/td> 9.10-12.20 168000 24800?/td> 班面授+专业??+专业译֮向辅?协议加强评(高定?+专属规划{疑(高定?+_化答?复试资源(高定?+复试译֌(高定?+复试指导(高定?+复试班主?v1服务(高定?+复试面授密训(高定?+复试1v1(高定?
2023集训畅学 非定向(政英?数政qQ?/td> 每月20?/td> 22800?协议? 13800?/td> 先行阶在U课E?基础阶在U课E?强化阶在U课E?真题阶在U课E?冲刺阶在U课E?专业NҎ(gu)一对一评+班主dE督学服?全程规划体系+全程试体系+全程_化答?择校择专业能力定位体p?全年关键环节指导体系+初试加强?初试专属服务+复试全科标准班服?/td>

①凡本网注明“稿件来源:跨考网”的所有文字、图片和韌频稿Ӟ版权均属北京学博教育咨询有限公司Q含本网和跨考网Q所有,M媒体、网站或个h未经本网协议授权不得转蝲、链接、{帖或以其他Q何方式复制、发表。已l本|协议授权的媒体、网站,在下载用时必须注明“稿件来源,跨考网”,q者本|将依法q究法律责Q?/p>

②本|未注明“稿件来源:跨考网”的?囄Eg均ؓ转蝲E,本网转蝲仅基于传递更多信息之目的Qƈ不意味着再通{载稿的观Ҏ(gu)证实其内容的真实性。如其他媒体、网站或个h从本|下载用,必须保留本网注明的“稿件来源”,q自负版权等法律责Q。如擅自改为“稿件来源:跨考网”,本网依法追I法律责仅R?/p>

③如本网转蝲E涉及版权等问题Q请作者见E后在两周内速来?sh)与跨考网联系Q电(sh)话:400-883-2220