2017-07-13 25 views
1

私は、負でない有理数、xをキーとして「連続」データ構造を作成しようとしています。 xをキーとして検索すると、xのキーを持つ固有の要素が返されるか、またはxより小さいすべての要素の中で最大のものが返されます。 をするたびに右のパスは次のとおりです。検索キー、Xは、5.1「連続」バイナリ検索ツリー

Search

私の提案したアルゴリズムは、ビットを検索し、通常のバイナリツリーを改訂であるのはここ

は、ここでは、実証するイメージですこのノードはベクトルに追加されます(キーがノードより大きいため)。バイナリツリー検索後にノードが見つからない場合は、ベクトルの中の最大のノードが結果として選択されます。すでにこれを行い

  1. (Java)のクラス:

    ありますか?
  2. これを行うために既存のクラスを「ハックする」簡単な方法はありますか?
  3. これを行うには良いコレクションですか?
+2

オフサイトのリンクが頼りになるように質問を書かないでください。一部の人はクリックスルーできなくなり、時間がたつにつれてリンクが切れると、あなたの質問は役に立たなくなります。 – azurefrog

答えて

0

NavigableMapを使用して問題を解決できます。 NavigableMap#lowerEntryを使用できます。

指定されたキーよりも厳密に小さい最大のキーに関連付けられたキーと値のマッピングを返します。キーがない場合はnullを返します。

これで、次に値の大きい要素を簡単に取得できます。

+1

完璧 - 私が探していたもの – programmer1234