- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
树与叉树典型例题讲解
3. 树的遍历 遍历:按一定搜索路经走遍树的各个顶点,使树中每一结点均被且仅被访问一次。 目的:产生树中所有结点的一个线性排列。 常用方法: 先根(序)遍历:先访问树的根结点,然后依次先根遍历根的每棵子树。 后根(序)遍历:先依次后根遍历每棵子树,然后访问根结点。 按层次遍历:先访问第一层上的结点,然后依次遍历第二层,……直到最后一层的结点。 A B C D E F G H I J K L M N O 先序遍历: 后序遍历: 层次遍历: A B E F I G C D H J K L N O M E I F G B C J K N O L M H D A A B C D E F G H I J K L M N O 例6.16 树的遍历 A B C D E F G H I J 例6.17 森林遍历 先序遍历结果:A B C D E F G H I J 中序遍历结果:B C D A F E H J I G 后序:DECBHGFA * 例题6.1 已知一棵度为m的树有n1个度为1的结点,n2个度为2的结点,…,nm个为m结点,问该树中有多少个叶子结点? 解:设n为总结点个数,n0为叶子结点(即度为0的结点个数),则有: n=n0+n1+n2+…+nm (1) 又有(分支总数):n-1=n1*1+n2*2+n3*3+…+nm*m (2) (因为一个结点对应一个分支) 式(2)-(1)得: 1=n0-n2-2n3-…-(m-1)nm 则有:n0=1+n2+2n3+…+(m-1)nm 练习 设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为 证明: 二叉树度为0的结点总比度为2的结点多1个 因为二叉树所有结点滴个数都不大于2,所以结点总数n=n0+n1+n2 (1) 又因为度为1和度为2的结点分别有1个子树和2个子树,所以,二叉树中子树结点就有n(子)=n1+2n2 二叉树中只有根节点不是子树结点,所以二叉树结点总数n=n(子)+1 即 n=n1+2n2+1 (2) 结合(1)式和(2)式就得n0=n2+1 练习 1、具有10个叶结点的二叉树中有( )个度为2的结点 A.8 B.9 C.10 D.ll 2、一棵具有 n个结点的完全二叉树的树高度(深度)是( ) A.?logn?+1 B.logn+1 C.?logn? D.logn-1 3、一棵树高为K的完全二叉树至少有( )个结点。 A.2k –1 B. 2k-1 –1 C. 2k-1 D. 2k 例题6.2 写出如图6.2所示的二叉树的前(先)序﹑中序和后序遍历序列. 解: ⑴前序为“根左右”,从左到右收集的前序序列为:fdbacegihj; ⑵中序为“左根右”,从左到右收集的中序序列为:abcdefghij; ⑶后序为“左右根”,从左到右收集的后序序列为:acbedhjigf。 f d g i b e h j a c 练习 一棵二叉树如图所示:写出对此树的先根、中跟、后跟序列。 先根序列:ABDEFC 中根序列:DEFBAC 后根序列:FEDBCA 已知先序和中序求后序 先序:ABCDEFGH 中序:BDCEAFHG 后序: 已知中序和后序求先序 中序:BDCEAFHG 后序:DECBHGFA 求先序: 问题 已知先序和后序能求中序么? 例题6.3 若一棵二叉树,左右子树均有三个结点,其左子树的前(先)序序列与中序序列相同,右子树的中序序列与后序序列相同,试构造该树。 【解】据题意,左子树的前序序列与中序序列相同,即有: 前序: 根 左 右 中序: 左 根 右 也即,以左子树为根的树无左孩子。此处,右子树的中序序列与后序序列相同,即有: 中序: 左 根 右 后序: 左 右 根 也即,以右子树为根的树无右孩子。由此构造该树如下图所示。 例题4 一棵非空的二叉树其先序序列和后序序列正好相反,画出这棵二叉树的形状。 解:先序遍历为“根左右”,后序遍历为“左右根”。 根结点在两个序列中的位置分别在最前和最后,正好相反;
文档评论(0)