我遇到了一个面试问题,问题是:你如何用二叉树表示A
, B
, C
, D
, E
, F
和G
的排序顺序?
这真的难倒我了。如果我们将G
作为树的根,那么左子树将是E
,右子树将是F
,这样右子树"大于"左子树。那么对于节点E,它的左子节点是A,右子节点是B
, F
的左子节点是C
,右子节点是D
。
是正确的还是其他人有不同的答案?
您所描述的二叉树是一个二进制堆,通常用于实现优先级队列。
请使用二叉搜索树,它将键值按顺序排列。
如果您使用字母A到G作为您的完整集合,排序二叉树将看起来像:
D
B F
A C E G
你对这个问题的回答是错误的。为什么?当你把G作为根时,所有其他字母或键必须在G的左边,这意味着G不会有右子树,因为所有组成右子树的节点的键必须大于参考键值,在这种情况下,G