【问题标题】:Balanced BSTs using hashmaps?使用哈希图平衡 BST?
【发布时间】:2018-06-19 09:46:16
【问题描述】:

使用哈希映射而不是指针的 BBST

我正在考虑使用哈希映射实现平衡二叉搜索树的想法。实现可以是这样的:hash-map 的 key 将是插入树中的值,hash-map 的 value 将是左值、右值和高度的元组(在 AVL 树的情况下)

    10                     H[10] = {7, 15, 2}
   /  \                    H[7]  = {3, 8, 1}
  7    15          --->    H[15] = {nil, 18, 1}
 / \    \                  H[3] = H[8] = H[18] = {nil, nil, 0}
3   8    18 

我认为它比树的标准实现没有任何优势,除了您可以在恒定时间内搜索值,然后搜索任何后继或任何其他 BBST 提供的统计信息。我们已经可以在维护指向节点的哈希映射的帮助下做到这一点,但在我看来,这种实现更容易。

有人试过吗?这是个好主意吗?

【问题讨论】:

    标签: data-structures hashmap binary-search-tree


    【解决方案1】:

    我不能说这是一个好主意还是坏主意,尽管我看不出它有什么特别的好处。在我看来,插入或删除节点会变得更加复杂,尤其是如果你想保持树的平衡。

    如果你的树允许重复键,你也会遇到一些真正的麻烦。

    我认为您最好使用传统的树结构,如果您需要 O(1) 查找,请添加哈希映射。

    【讨论】:

    • 插入和删除节点不会成为 IMO 的问题。但是重复键是一个非常大的问题。我自己想不出有什么好处。也许需要更少的内存,但我不确定。
    猜你喜欢
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 2018-01-06
    相关资源
    最近更新 更多