【问题标题】:"Continuous" Binary Search Tree“连续”二叉搜索树
【发布时间】:2017-07-13 20:44:57
【问题描述】:

我正在尝试创建一个以非负有理数 x 作为键的“连续”数据结构。搜索 x 作为键将返回以 x 作为键的唯一元素,或者返回小于 x 的所有元素中最大的元素将被退回。

这里有一张图片来演示,这里的搜索关键字 x 是 5.1

Search

我提出的算法稍微修改了正常的二叉树搜索: 每次采用正确的路径(因此键大于节点)时,都会将该节点添加到向量中。如果二叉树搜索后没有找到节点,则选择向量中最大的节点作为结果。

有没有

  1. 一个 (java) 类已经这样做了?
  2. “破解”现有类的简单方法?
  3. 一个更好的集合来做到这一点?

【问题讨论】:

  • 请不要写出您的问题,因为它依赖于站外链接才能回答。有些人将无法点击,随着时间的推移,如果链接断开,您的问题将变得毫无用处。

标签: java tree binary-tree


【解决方案1】:

您可以通过使用NavigableMap 来解决您的问题。您可以使用NavigableMap#lowerEntry,其中:

返回与严格小于给定键的最大键关联的键值映射,如果没有这样的键,则返回 null。

有了这个,你可以很容易地抓住下一个最高价值的元素。

【讨论】:

  • 完美——正是我想要的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2010-10-26
  • 1970-01-01
相关资源
最近更新 更多