排序字母使用二叉树



我遇到了一个面试问题,问题是:你如何用二叉树表示A, B, C, D, E, FG的排序顺序?

这真的难倒我了。如果我们将G作为树的根,那么左子树将是E,右子树将是F,这样右子树"大于"左子树。那么对于节点E,它的左子节点是A,右子节点是B, F的左子节点是C,右子节点是D

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

您所描述的二叉树是一个二进制堆,通常用于实现优先级队列。

请使用二叉搜索树,它将键值按顺序排列。

如果您使用字母A到G作为您的完整集合,排序二叉树将看起来像:

      D
  B       F  
A   C   E   G

你对这个问题的回答是错误的。为什么?当你把G作为根时,所有其他字母或键必须在G的左边,这意味着G不会有右子树,因为所有组成右子树的节点的键必须大于参考键值,在这种情况下,G

最新更新