-2

我真的很难过,我不知道如何处理它 - 非常感谢你的帮助:

一家公司试图构建一个 SP 树数据结构,以便每个交集包含两个键:一个排序键 skey,它赋予 SP 二叉搜索树的能力,一个 pkey 键,赋予 SP 最小堆的能力(假设所有的 pkey 键彼此不同)。

如何证明存在由 n 对键(skey,pkey)组成的奇异(单个)数据结构 SP?

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

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

4

1 回答 1

2

我在我的算法课程(“以色列开放大学”)中也有同样的问题。

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

你可以在“算法简介”一书中的练习 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

来自chains的翻译是:

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

于 2018-06-16T22:49:36.183 回答