使用散列图的平衡BST?

时间:2018-06-19 09:46:16

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

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

我在考虑使用哈希映射实现平衡二进制搜索树的想法。实现可以是这样的:hash-map的将在树中插入值,而hash-map的将是左值,右值和高度的元组(在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提供的任何后继或任何其他统计信息之外,我认为它不会提供超过树的标准实现的任何优势。我们已经可以在维护指向节点的哈希映射的帮助下完成此操作,但在我看来,这种实现更容易。

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

1 个答案:

答案 0 :(得分:0)

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

如果您的树允许重复的密钥,您还将遇到一些实际的麻烦。

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