在搜索特定键时,键值可能出现多少种不同的顺序?
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种方式
在二叉查找树中查找键值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种方式