数据结构习题和答案与实验指导(树和森林).docVIP

数据结构习题和答案与实验指导(树和森林).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE PAGE 88 PAGE PAGE 88 第7章 树和森林 树形结构是一类重要的非线性结构。树形结构的特点是结点之间具有层次关系。本章介绍树的定义、存储结构、树的遍历方法、树和森林与二叉树之间的转换以及树的应用等内容。 重点提示: 树的存储结构 树的遍历 树和森林与二叉树之间的转换 7-1 重点难点指导 7-1-1 相关术语 1.树的定义:树是n(n=0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件:①有且仅有一个特定的称为根的结点;②其余的结点可分为m(m=0)个互不相交的子集T1,T2,…,Tm,其中每个子集本身又是一棵树,并称为根的子树。 要点:树是一种递归的数据结构。 2.结点的度:一个结点拥有的子树数称为该结点的度。 3.树的度:一棵树的度指该树中结点的最大度数。如图7-1所示的树为3度树。 4.分支结点:度大于0的结点为分支结点或非终端结点。如结点a、b、c、d。 5.叶子结点:度为0的结点为叶子结点或终端结点。如e、f、g、h、i。 6.结点的层数:树是一种层次结构,根结点为第一层,根结点的孩子结点为第二层,…依次类推,可得到每一结点的层次。 7.兄弟结点:具有同一父亲的结点为兄弟结点。如b、c、d;e、f;h、i。 8.树的深度:树中结点的最大层数称为树的深度或高度。 9.有序树:若将树中每个结点的子树看成从左到右有次序的(即不能互换),则称该树为有序树,否则称为无序树。 10.森林:是m棵互不相交的树的集合。 7-1-2 树的存储结构 1.双亲链表表示法 以图7-1所示的树为例。 a a cdb c d b higfe h i g f e 图 图7-1 一棵深度为3的树 PAGE PAGE 2 PAGE PAGE 1 (1)存储思想:因为树中每个元素的双亲是惟一的,因此对每个元素,将其值和一个指向双亲的指针parent构成一个元素的结点,再将这些结点存储在向量中。 (2)存储示意图: 0 1 2 3 4 5 6 7 8 9 MaxTreeSize-1 data: a b c d e f g h i … parent: -1 0 0 0 1 1 2 3 3 … (3)注意: Parrent域存储其双亲结点的存储下标,而不是存放结点值。 下面的存储是不正确的: 0 1 2 3 4 5 6 7 8 9 MaxTreeSize-1 data: a b c d e f g h i … parent: -1 a a a b b c d d … 2.孩子链表表示法 (1)存储思想: 将每个数据元素的孩子拉成一个链表,链表的头指针与该元素的值存储为一个结点,树中各结点顺序存储起来,一般根结点的存储号为0。 (2)存储示意图: 2 2 ∧ ∧ 1 ∧ ∧ 0 A 3 ∧ 3 ∧ ∧ ∧ 1 B 4 ∧ ∧ 5 ∧ ∧ ∧ 2 C 6 ∧ ∧ ∧ 3 D 7 ∧ ∧ 8 ∧ ∧ ∧ 4 E ∧ 5 F ∧ 6 G ∧ 7 H ∧ 8 I ∧ 图7-2 孩子链表存储示意图 (3)需注意的问题: ① 每个结点的孩子结点的child域存放该孩子的存储序号,而不是存放其结点的值。 ② 孩子链表的最后一个结点的next域置入空指针。 ③ 叶子结点的firstchild域也要置入空指针。 3.双亲-孩子兄弟链表表示法 将双亲表示和孩子兄弟链表表示法结合起来。 4.孩子兄弟链表表示法 (1)存储思想是:树中每个数据元素存储为一个结点,结点的结构如下: leftmostchild data rightsilling 其中:data为该数据元素的信息; leftmostchild为该元素第一个孩子的指针; rightsilling 为该元素右兄弟的指针。 (2)存储示意图: a ∧ b ∧ g ∧ ∧ f ∧ c d ∧ ∧ e ∧ i ∧ ∧ h 图7-3 孩子-双亲链表存储示意图 7-1-3 树的基本运算 1.树的遍历 (1)先根遍历:若树T非空,则: ① 访问根结点R; ② 依次先根遍历根R的各个子树T1、T2、…、Tk。 (2)后根遍历:若树T非空,则: ① 依次后根遍历根R的各个子树T1、T2、…、Tk; ② 访问根结点R。 2.森林的遍历 (1)前序遍历:若森林F非空,则 ① 访问森林中第一

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档