我遇到了一个采访问题,其中说明:您如何代表字母A
,B
,C
,D
,E
,{{ 1}}和F
使用二叉树表示的排序顺序?
这真让我难过。如果我们将G
作为树的根,则左子将G
而右子将为E
,以便右子树“大于”左子树。然后对于节点E,其左边的孩子将是A,而右边的孩子F
和B
的左边的孩子将是F
,其右边的孩子将是C
。
这是正确的还是其他人有不同的答案?
答案 0 :(得分:3)
您描述的二叉树是Binary heap,通常用于实现优先级队列。
相反,请使用Binary search tree,它会按键排序。
答案 1 :(得分:2)
如果您使用A到G中的字母作为完整集,则排序的二叉树将如下所示:
D
B F
A C E G
答案 2 :(得分:0)
您对问题的回答不正确。为什么? 当您以 G 作为根时,所有其他字母或键都必须在 G 的左侧。 这意味着 G 不会有右孩子,因为形成右子树的所有节点必须具有比参考键值更大的键,在在这种情况下,G。