📜  门| GATE-CS-2016(套装2)|第 50 题

📅  最后修改于: 2021-09-26 03:29:24             🧑  作者: Mango

可以将数字 1、2、3、4、5、6、7 插入空的二叉搜索树,使得结果树的高度为 6 的方式数是_____________

注意:具有单个节点的树的高度为 0。

【本题原为填空题】
(一) 2
(乙) 4
(C) 64
(四) 32答案: (C)
说明:要获得高度 6,我们需要在根处放置 1 或 7。

所以 count 可以写成 T(n) = 2*T(n-1) 且 T(1) = 1

7
   / 
 [1..6]  

    1
      \
     [2..7] 

因此计数为 2 6 = 64

另一种解释:

考虑这些情况,
1 2 3 4 5 6 7
1 2 3 4 5 7 6
1 7 6 5 4 3 2
1 7 6 5 4 2 3
7 6 5 4 3 2 1
7 6 5 4 3 1 2
7 1 2 3 4 5 6
7 1 2 3 4 6 5

对于高度 6,我们有 2 个选择。我们选择根为 1 或 7。
假设我们选择 7。
现在,我们有 6 个节点,剩余高度 = 5。
所以,现在我们也有两种方法来为这个子树选择根。
现在,我们继续重复相同的过程,直到剩余高度 = 1
对于最后一种情况,我们也有两种方法。

因此,总路数 = 2 6 = 64这个问题的测验