辅助定理2[节点的最多个数].pptVIP

  1. 1、本文档共100页,可阅读全部内容。
  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文档。上传文档
查看更多
辅助定理2[节点的最多个数]

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5.10 集合的表示法 定義[塌陷規則collapsing rule]:如果j是從i到其根節點的路徑上的一個節點,且parent[i] ? root[i],則令parent[j]為root[i]。 程式5.21:塌陷規則 int collapsingFind(int i) { int root, trail, lead; for (root = i; parent[root] = 0; root = parent[root]) ; for (trail = i; trail != root; trail = lead) { lead = parent[trail]; parent[trail] = root; } return root; } Hsin-Chang Yang@NUKIM * 5.11 二元樹之計數 5.11.1 不同的二元樹 令n為節點數。當n = 0或n = 1時,只有一個二元樹。當n = 2時,有兩個不同的二元樹。當n = 3時,有5個不同的二元樹。 當節點數為n時,有多少個不同的二元樹呢? 5.11.2 堆疊排列 假設某一樹之先序尋訪序列為A B C D E F G H I,其中序尋訪序列為B C A E D G H F I。這兩序列是否可義一唯一的樹?另一種說法,這兩個序列是否可以來自不同的樹? Hsin-Chang Yang@NUKIM * 5.11 二元樹之計數 根據先序序列的第一個字母A,我們知道它一定是此樹之根節點。再根據中序序列,我們可知A之前的節點(B C)為A之左子樹,其餘的節點(E D G H F I)為右子樹。如圖5.47(a)所示。 繼續看先序序列,我們得到B為下一根節點。由於在中序序列中之B之前已無節點,B之左子樹為空,因此C為其右子樹,如圖5.47(b)所示。 繼續使用上述方法,我們可以得到圖5.48(a)之結果。 每一二元樹有唯一之先序/中序序列配對。 Hsin-Chang Yang@NUKIM * 5.11 二元樹之計數 圖5.47:由先序與中序序列建立二元樹 Hsin-Chang Yang@NUKIM A B, C D, E, F, G, H, I A D, E, F, G, H, I B C ( a ) ( b ) * 5.11 二元樹之計數 圖5.48:依先序與中序序列建立之二元樹 Hsin-Chang Yang@NUKIM A B C D F E I G H (a) 1 2 3 4 6 5 9 7 8 (b) * 5.11 二元樹之計數 令一n節點之二元樹之節點由1至n號。由此二元樹所定義之中序排列(inorder permutation)定義為此樹在進行中序尋訪時所拜訪之節點之順序。先序排列之定義類似。 例如,令圖5.48(a)之二元樹之節點順序如圖5.48(b)所示。則其先序排列為1, 2, ..., 9。其中序排列為2, 3, 1, 5, 4, 7, 8, 6, 9。 如果一樹的節點編號後之先序排列為1, 2, ..., n,則不同的中序排列定義了不同的二元樹。因此,不同的二元樹數量等於不同的中序排列數。 將數字1至n藉由堆疊傳遞並依所有可能方式取出之方法數會等於具有n個節點之不同二元樹之數量。 Hsin-Chang Yang@NUKIM * 5.11 二元樹之計數 假設有數值1, 2, 3,則由堆疊所得之可能排列為(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 2, 1)。(3, 1, 2)不可能獲得。這五種排列各自對應至具有三節點之二元樹的其中一種。如圖5.49所示。 圖5.49:對應至五種排列的二元樹 Hsin-Chang Yang@NUKIM 1 2 3 1 2 3 1 3 2 1 2 3 1 2 3 (1, 2, 3) (1, 3, 2) (2, 1, 3) (2, 3, 1) (3, 2, 1) * * * * * * * * * * * * * * * * * * * * * * * * * * 5.6 堆積(Heaps) while (child = *n) { if ((child *n) (heap[child].key heap[child + 1].key)) child++;/*找出較大的孩子*/ if (temp.key = heap[child].key) break

文档评论(0)

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

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

1亿VIP精品文档

相关文档