使用二叉树排序字母

时间:2015-08-25 00:40:46

标签: algorithm data-structures binary-tree

我遇到了一个采访问题,其中说明:您如何代表字母ABCDE,{{ 1}}和F使用二叉树表示的排序顺序?

这真让我难过。如果我们将G作为树的根,则左子将G而右子将为E,以便右子树“大于”左子树。然后对于节点E,其左边的孩子将是A,而右边的孩子FB的左边的孩子将是F,其右边的孩子将是C

这是正确的还是其他人有不同的答案?

3 个答案:

答案 0 :(得分:3)

您描述的二叉树是Binary heap,通常用于实现优先级队列。

相反,请使用Binary search tree,它会按键排序。

答案 1 :(得分:2)

如果您使用A到G中的字母作为完整集,则排序的二叉树将如下所示:

      D
  B       F  
A   C   E   G

答案 2 :(得分:0)

您对问题的回答不正确。为什么? 当您以 G 作为根时,所有其他字母或键都必须在 G 的左侧。 这意味着 G 不会有右孩子,因为形成右子树的所有节点必须具有比参考键值更大的键,在在这种情况下,G。