📜  门| GATE CS 2018 |简体中文第57章

📅  最后修改于: 2021-06-28 18:15:45             🧑  作者: Mango

包含一次来自{1、2、3、4、5、6、7}的每个值的最小堆的数量是_______。

注–这是数值类型的问题。
(A) 80
(B) 8
(C) 20
(D) 210答案: (A)
说明:将最小元素设置为根(即1 ),现在剩下6个,并且左子树将具有3个元素,每个左子树组合可以置换成2个!方法。

设计具有7个元素的最小堆的总方法= ^6C_3 * 2! * 2! = 20 * 2 * 2 = 80

替代方法–具有1到N个元素的最小或最大堆树总数使用递归关系:

T(N) =(N-1)Ck * T(k) * T(N-k-1), where k = number of nodes on left subtree

T(1) = 1
T(2) = 1
T(3) = 2
T(4) = 3C2 * T(2) * T(1) = 3
T(5) = 4C3 * T(3) * T(1) = 8
T(6) = 5C3 * T(3) * T(2) = 20
T(7) = 5C3 * T(3) * T(3) = 80

因此,答案是80。

这个问题的测验