由最小堆和二进制搜索树组成的数据结构(棘手)

时间:2018-06-16 17:30:11

标签: algorithm data-structures binary-search-tree min-heap

我很难用这个,而且我不知道如何接近它 - 非常感谢你的帮助:

公司尝试构建一个SP树数据结构,以便每个交集包含两个键:一个为SP提供二进制搜索树功能的排序键skey,以及一个为SP提供最小堆的能力的pkey键(假设所有的pkey键彼此不同)。

如何显示存在由n对键(skey,pkey)组成的单一(单个)数据结构SP?

我的意思是,由于pkey(min-heap),它会说堆树将被定义,以便它的每个儿子的价值都大于父母。 但是,由于skey(二叉树),它意味着只有在右侧才会有价值大于父母的元素(左边应该更少,但我不知道它是如何与pkey要求 - 因为它的儿子应该具有比父母更高的价值。我真的不明白它 - 应该获得的树看起来像一条向右的线?

我真的不明白,如果你们能帮助我,我真的很感激。

1 个答案:

答案 0 :(得分:2)

我在算法课程中遇到了同样的问题(#34;以色列开放大学")。

尝试使用 treap (treap = tree + heap),你可以在这里看到它是如何工作的:

你可以在书#34;算法简介"的练习13-4中看到一个很好的例子。

这里也有一些很好的解释:

https://threads-iiith.quora.com/Treaps-One-Tree-to-Rule-em-all-Part-1

这是一些解决方案: https://github.com/gzc/CLRS/blob/master/C13-Red-Black-Trees/problem.md

和链的翻译是:

Treap会按照优先级的顺序将节点插入到普通的二叉树中。如果n-1节点的Treap是确定的,因为INSERT算法是确定性算法,也可以确定可以获得n个节点的Treap。