数据结构第09次课数组A.pptVIP

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构第09次课数组A

数据结构课程的内容 第5章 数组和广义表(Arrays Lists) 5.1 数组的定义和特点 定义 数组的定义 二维数组的特点: 5.2 数组的存储表示和实现 例2:已知二维数组Am,m按行存储的元素地址公式是: Loc(aij)= Loc(a11)+[(i-1)*m+(j-1)]*K , 按列存储的公式是? Loc(aij)=Loc(a11)+[(j-1)*m+(i-1)]*K (尽管是方阵,但公式仍不同) 5.3 矩阵的压缩存储 1. 对称矩阵 2. 三角矩阵 4、稀疏矩阵的压缩存储 例1 : 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的 、 和 。 法三:用带辅助向量的三元组表示。 方法: 增加2个辅助向量: ① 记录每行非0元素个数,用NUM(i)表示; ② 记录稀疏矩阵中每行第一个非0元素在三元组中的行号,用POS(i)表示。 2. 十字链表 5、稀疏矩阵的操作 方法1:压缩转置 方法2 快速转置 回顾:用带辅助向量的三元组表示。 方法: 增加2个辅助向量: ① 记录每行非0元素个数,用NUM(i)表示; ② 记录稀疏矩阵中每行第一个非0元素在三元组中的行号,用POS(i)表示。 设计思路: 令:M中的列变量用col表示; num[ col ]:存放M中第col 列中非0元素个数, cpot[ col ]:存放M中第col列的第一个非0元素的位置, (即b.data中待计算的“恰当”位置所需参考点) 5.4 广义表的定义 2、特点: 有次序性 有长度 有深度 可递归 可共享 5.5 广义表的存储结构 从键盘接收信息建立十字链表算法 p104 自学 算法分析: T(n)=o(t?s) 其中:t——非零元个数 s= max(m,n) 令q=NULL,p=rh[r-1], (1)寻找插入位置:当p!=NULL且cp-col时,p和q右移 (2)插入: a、若p==NULL且q==NULL,即本行空,则rh[r-1]==s; b、若p==NULL,q!=NULL,即走到行末,则q-right=s c、若c==p-col,则修改p-val d、若cp-col且q==NULL,则在p之前插入s,即s是行链表中 第一个结点,令rh[r-1]=s; s-right=p; e、若cp-col且q!=NULL,则在p之前插入s, 即 s-right=p; q-right=s; 0 12 9 0 0 0 0 0 0 0 0 0 -3 0 0 0 14 0 0 0 24 0 0 0 0 18 0 0 0 0 15 0 0 -7 0 0 0 0 –3 0 0 15 12 0 0 0 18 0 9 0 0 24 0 0 0 0 0 0 0 -7 0 0 14 0 0 0 0 0 0 0 0 0 (6, 4, -7) (6, 1, 15) (5, 2, 18) (4, 3, 24) (3, 5, 14) (3, 1, -3) (1, 3, 9 ) (1, 2, 12) (5, 3, 14) (4, 6, -7) (3, 4, 24) (3, 1, 9) (2, 5, 18) (2, 1, 12) (1, 6, 15) (1, 3, -3) 三 元 组 表 a.data 三 元 组 表 b.data 转置后 M T (以转置运算为例) 目的: 答:肯定不正确! 除了: (1)每个元素的行下标和列下标互换(即三元组中的i和j互换); 还应该:(2)T的总行数mu和总列数nu与M值不同(互换); (3)重排三元组内元素顺序,使转置后的三元组也按行(或列)为主序有规律的排列。 上述(1)和(2)容易实现,难点在(3)。 提问:若采用三元组压缩技术存储稀疏矩阵,只要把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档