网站大量收购闲置独家精品文档,联系QQ:2885784924

循环稀疏.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  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文档。上传文档
查看更多
循环稀疏

§ 3. 2 循环链表 一、循环链表的类定义(§ 3.2.1) 1.单链表结构中容易访问后继结点,但无法访问前面的结点。为此,可使用循环链表。 循环链表(Circular List)的结点结构与单链表相同,与单链表不同的是链表中表尾结点的link域中不是0 (NULL ),而是存放了一个指向链表开始结点的指针,这样,只要知道表中任何一个结点的地址,就能遍历表中其它任一结点。 在循环链表中检查指针current是否达到链表的链尾时,不是判断是否current-link = =NULL,而是判断是否current-link = =first。 循环链表的运算涉及链头与链尾的时候比较多,但图3.8的形式访问链头容易,访问链尾胶难。如果存取指针不放在链头而是放在链尾,就会更方便,如图 3.9所示。 循环链表与单链表一样,可以有表头结点,这样能够简化链表操作的实现,统一空表与非空表的运算。图3.10给出空表与非空表情形下循环链表的形态。 在带表头结点的循环链表中,链尾结点的link域存放的是该链表表头结点的地址。 2.下面给出循环链表的类定义。** § 3. 4 双向循环链表** § 3.5 稀疏矩阵** 一、引人正交链表结构来表示稀疏矩阵 执行矩阵的加、减、乘等运算时,矩阵中的非零元素的数目往往会变化,采用顺序方式表示稀疏矩阵一般不很适宜。因此,我们引人正交链表结构来表示稀疏矩阵,它能有效地表示动态变化的矩阵结构,克服顺序表示的缺点。 图3.19 稀疏矩阵的正交链表表示的示例 在稀疏矩阵的正交链表表示中,矩阵的每一行设置为一个带表头结点的循环链表(称为行链表),每一列也设置为一个带表头结点的循环链表(称为列链表)。 链表中的结点都是属于稀疏矩阵结点类sMatrixNode的对象,这个类包含有一个域head,它用于区分该结点是表头结点还是链表中的非零元素结点:head=True,表示该结点是表头结点;head=False,表示该结点是矩阵中的非零元素结点。 每一个表头结点另外还有3个域:down , right和next,参看图3.18 (a)。第i个行链表和第i个列链表共用一个表头结点,在它的down域存放第i个列链表的最前端第一个结点的地址,在它的right域存放第i个行链表最前端第一个结点的地址,通过next域能够链接到第i+l个表头结点,因此,行/列链表表头结点总数为max{行数,列数}。 每一个非零元素结点包含有6个域:head,row,col , down , right和value,如图3.18(b)所示。row,col用以指明该结点的行/列号; down存放列链表指针,用以指明在同一个列链表中下一个结点的地址;right存放行链表指针,用以指明在同一个行链表中下一个结点的地址。如果稀疏矩阵有一个非零元素a[i][j],则为它创建一个元素结点,令该结点的row = i , col = j, value = a[i][j], head = False,并把它链接到第i个行链表和第j个列链表中去,如图3.18(c)所示。因此,这个非零元素结点同时处于行、列这两个不同的链表中。 在稀疏矩阵中每个行/列链表都有表头结点,这些表头结点通过next域链接起来,它有一个总的表头结点,总表头结点的结构同非零元素,head = 0,row和col域给出矩阵的行数和列数。从总表头结点出发,可以顺序地访问第一个、第二个,……个表头结点,整个稀疏矩阵将定义为类sMatrix的一个对象,这个类有一个私有数据成员*headnode,给出整个表头结点链表的总表头结点的地址。图3.19给出一个6行7列,有7个非零元素的稀疏矩阵的正交链表表示。 第三章习题:3-1, 3-2, 3-4, 3-6

文档评论(0)

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

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

1亿VIP精品文档

相关文档