可以在二进制堆中插入数字1,2,3,4,5的方式数,这样生成的二进制堆就是min堆吗?
答案= 8
================================================ =========================
我的看法-由于它是Min堆,因此最小值将在root位置。
这将是最小堆,为
o -------> root will be chosen in 1 way
/ \
o o
/ \
o o
->左子树将是 4C3 * 1 * 2 方式,因为根再次将获得最小值,而左子节点和右子节点则可以获取任何值。
->最后,右子树=> 1C1 = 1
总共-1 * 4C3 * 1 * 2 * 1 =8。这种方法正确吗?
答案 0 :(得分:1)
是的,您的正确答案是8。让我们考虑所有安排。
让LST = left subtree
和RST = right subtree
第一个-1固定在根上(因为1是最低的元素)。
第一种方式:我们可以在LST中拥有(2,3,4),而在RST处只有5:在这里(2,3,4)可以通过在LST中保留4作为根以2种方式进行排列
第二种方法:在LST的(2,3,5)本身可以用2种方法完成,而在RST处保留4种
第三种方式:(2,4,5)在LST,在RST是3
第4种方式:在LST为(3,4,5),在RST为2
总路数= 2 * 2 * 2 * 2 = 8条路