在搜索特定键时,键值可能出现多少种不同的顺序?

How many different orders are possible in which the key values can occur while searching for a particular key?

在二叉查找树中查找键值60时,包含键值10、20、40、50、70、80、90的节点是 遍历,不一定按照给定的顺序。这些键值可以出现在多少种不同的顺序中 从包含值 60 的根节点开始的搜索路径?

答案是7C4。

搜索 60,我们遇到 4 个小于 60 的键 (10,20,40,50) 和 3 个大于 (70,80,90) 的键。

四个较小的键必须按升序出现,三个较大的键必须按降序出现,否则在遍历时会遗漏一些键。

注意在遍历中,这些lesser key可能不是连续的,可以被greater key隔开。

例如:10、90、20、30、80、40、70、50

但两组键(较小和较大)的顺序分别保持不变。

现在,在总共七个位置中,较小的键获得四个位置,可以7C4方式选择。一旦我们知道这四个键的位置,三个更大的键的位置就只有一个排列。

例如:如果我们知道

10, _, 20, 30, _, 40, _, 50

那么90、80和70只有一个位置排列,分别是2号、5号和7号。

因此,对于每个较小键的组合,都有一个唯一的较大键组合。

所以总组合= 7C4*1 =35种方式