数据结构 第五章 树与二叉树 习题

5.1 树的基本概念

定义

在任意一棵非空树中应满足:
1)有且仅有一个特定的称为的结点。
2)当 n > 1 n>1 n>1时,其余节点可分为 m m m个互不相交的有限集 T 1 T 2 . . . T m T_1T_2...T_m T1T2...Tm,其中每个集合本身又是一棵树,称为根的子树

特点

树是一种递归的数据结构。
1)树的根结点没有前驱,除根节点外的所有结点有且只有一个前驱。
2)树中所有结点可以有零个或多个后继。
树适合表示有层次的数据结构,某个结点(除根节点外)最多只和其父节点有直接关系。

基本术语

结点的度:一个结点的孩子个数称为该结点的度。
树的度:树中结点的最大度数。
层次:从树根开始定义,根节点为第1层。
深度:从根节点开始自顶向下逐层累加。
高度:从叶结点开始自底向上逐层累加。
树的高度(或深度):树中结点的最大层数。
树的路径长度:树根到每个结点的路径长度的总和。

树的性质

1)树中的结点数等于所有结点的度数加1
2)度为 m m m的树中第 i i i层上至多有 m i − 1 m^{i-1} mi1个结点
3)高度为 h h h m m m叉树至多有 ( m h − 1 ) ( m − 1 ) (m^h-1)(m-1) (mh1)(m1)个结点
4)具有 n n n个结点的 m m m叉树的最小高度为 ⌈ l o g m ( n ( m − 1 ) + 1 ) ⌉ \lceil log_m(n(m-1)+1)\rceil logm(n(m1)+1) n ( m − 1 ) n(m-1) n(m1)为假设每层都有m-1个分支时的情况。

习题5.1

  1. 树的度为n,结点数为x,求最小高度h
    求最小高度则树一定是完全n叉树,即每个结点的度数都为n,因此树的最小高度为 ⌈ l o g n ( 2 x + 1 ) ⌉ \lceil log_n(2x+1) \rceil logn(2x+1)

  2. 树的度为x,至少有几个结点?
    树高h+x-1个结点(从根到h-1层都只有1个结点,最后一层有x个结点)

  3. 树的高度为h,度为x,至多有几个结点?
    完全x叉树,最多有 1 + x + x 2 + . . . + x h − 1 1+x+x^2+...+x^{h-1} 1+x+x2+...+xh1

  4. 树的度为n,求叶结点
    按照条件求出总结点树-非叶结点树

  5. 总结点数= n 0 + n 1 + . . . + n m n_0+n_1+...+n_m n0+n1+...+nm

  6. 总分支数= 1 n 1 + 2 n 2 + . . . + m n m 1n_1+2n_2+...+mn_m 1n1+2n2+...+mnm

  7. 总结点数= 总 分 枝 数 + 1 总分枝数+1 +1

简答题

  1. 含有n个结点的三叉树的最小高度是多少?
    最小高度的三叉树一定是完全三叉树,即每个结点的度都为3,设最小高度为h,则有 1 + 3 + 3 2 + . . . + 3 h − 2 < n ≤ 1 + 3 + 3 2 + . . . + 3 h − 1 1+3+3^2+...+3^{h-2}<n≤1+3+3^2+...+3^{h-1} 1+3+32+...+3h2<n1+3+32+...+3h1,即 ( 3 h − 1 − 1 ) / 2 < n ≤ ( 3 h − 1 ) / 2 (3^{h-1}-1)/2<n≤(3^{h}-1)/2 (3h11)/2<n(3h1)/2,得 3 h − 1 < 2 n + 1 ≤ 3 h 3^{h-1}<2n+1≤3^h 3h1<2n+13h h ≥ l o g 3 ( 2 n + 1 ) h≥log_3(2n+1) hlog3(2n+1),因此h为 ⌈ l o g 3 ( 2 n + 1 ) ⌉ \lceil log_3(2n+1) \rceil log3(2n+1)

  2. 已知一棵度为4的树中,度为0,1,2,3的结点数分别为14,4,3,2,求该树的结点总数和度为4的结点个数,并给出推导过程。
    设树中度为 i i i的结点数分别为 n i n_i ni,树中结点总数为 n n n,则 n = 分 支 数 + 1 n=分支数+1 n=+1,而分支数等于树中各结点的度之和,因此 n = 1 + n 1 + 2 n 2 + 3 n 3 + 4 n 4 = n 0 + n 1 + n 2 + n 3 + n 4 n=1+n_1+2n_2+3n_3+4n_4=n_0+n_1+n_2+n_3+n_4 n=1+n1+2n2+3n3+4n4=n0+n1+n2+n3+n4
    由上式得, 1 + 4 + 3 ∗ 2 + 2 ∗ 3 + 4 n 4 = 14 + 4 + 3 + 2 + n 4 1+4+3*2+2*3+4n_4=14+4+3+2+n_4 1+4+32+23+4n4=14+4+3+2+n4,得 n 4 = 2 n_4=2 n4=2,因此度为4的结点数为2,共有25个结点。

  3. 已知一棵度为m的树中,有 n 1 n_1 n1个度为1的结点,有 n 2 n_2 n2个度为2的结点……有 n m n_m nm个度为m的结点,问该树有多少个叶结点?
    1 + n 1 + 2 n 2 + . . . + m n m − ( n 1 + n 2 + . . . + n m ) = ∑ i = 2 m ( i − 1 ) n i 1+n_1+2n_2+...+mn_m-(n_1+n_2+...+n_m)=\sum_{i=2}^m(i-1)n_i 1+n1+2n2+...+mnm(n1+n2+...+nm)=i=2m(i1)ni

5.2

二叉树的定义及其主要特性

定义

二叉树:每个结点至多有两颗子树(即二叉树中不存在度大于2的结点),分左右子树,不能颠倒次序。
二叉树是有序树,其基本形态如图。
二叉树的5种基本形态

特殊的二叉树

满二叉树

高度为 h h h,含有 2 h − 1 2^h-1 2h1个结点的二叉树。
对二叉树按层序编号:根节点编号为1,从根节点自上而下,自左而右。
对编号为 i i i的结点,其双亲为 ⌊ i / 2 ⌋ \lfloor i/2 \rfloor i/2,若有左孩子,则左孩子为 2 i 2i 2i;若有右孩子,则右孩子为 2 i + 1 2i+1 2i+1
满二叉树

完全二叉树

高度为 h h h,含有 n n n个结点的二叉树,当且仅当其每个结点都与高度为 h h h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树。
完全二叉树

  1. i ≤ ⌊ n / 2 ⌋ i≤\lfloor n/2 \rfloor in/2,则结点 i i i为分支结点,否则为叶子结点。
  2. 叶子结点只可能在层次最大的两层上出现。最大层次中的叶子结点都依次怕lie在该层最左边的位置上。
  3. 若有度为1的结点,则只可能有一个,且该节点只有左孩子而无右孩子。
  4. 按层序编号后,一旦出现某结点 i i i为叶子结点或只有左孩子,则编号大于 i i i的结点均为叶结点。
  5. 若n为奇数,则每个分支都有左、右孩子;若n为偶数,则编号最大的分支结点 n / 2 n/2 n/2只有左孩子,没有右孩子。

二叉排序树

左子树上所有结点的值均小于根节点的值;右子树上的所有结点的值均大于根节点的值;左右子树又各是一棵二叉排序树。

平衡二叉树

树上任一结点的左子树和右子树的深度之差不超过1.

二叉树的性质

  1. 非空二叉树的叶子结点数等于度为2的结点数+1,即 n 0
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
度为2的有序二叉树有一些区别。首先,度为2的有序至少有3个结点,而二叉树可以为空。其次,度为2的有序中,孩子结点的左右次序是相对于另一个孩子结点而言的。如果某个结点只有一个孩子,则无需区分其左右次序。而对于二叉树,无论其孩子数是否为2,都需要确定其左右次序,即二叉树的结点次序是确定的,不是相对于另一个结点而言的。此外,含有n个结点的二叉树的高度为log2n下取整。 虽然度为2的有序二叉树在一些方面有差异,但可以说度为2的有序就是二叉树。因为对于任何一棵二叉树,我们都可以认为它是一个度为2的有序,只是其中一些结点的孩子数可能为0或者1。而完全二叉树是一种特殊的二叉树,它满足每个结点都与高度为h的满二叉树中编号为1—n的结点一一对应的条件。在完全二叉树中,如果一个结点没有左孩子,则它必定没有右孩子,那它就是叶子结点。 综上所述,度为2的有序可以看作是一种特殊的二叉树。它们的区别在于度为2的有序中孩子结点的左右次序相对于另一个孩子而言,而二叉树的结点次序是确定的。然而,我们可以将任何一棵二叉树视为度为2的有序,只需将孩子数为0或1的结点视为度为2的结点即可。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [数据结构---第五章二叉树---二叉树的概念---选择题](https://blog.csdn.net/programmer9/article/details/125015325)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [第六章 二叉树习题1](https://download.csdn.net/download/MFW333/87596042)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值