匿名質問者

2分探索木って、どんなところで活用されてますか?

データ構造の中でも、ただの配列やリストなんかはJavaプログラミングでよく見かけますが、2分探索木をプログラムの中で活用しているのを見たことがありません。言語実装とか、そういうところでしょうか?データ構造として、探索が速くなりそうだし、なんとなく使う機会はあるのかなと想像はできるのですが...。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2015/03/18 22:55:03

回答2件)

匿名回答1号 No.1

データベースのインデックス。
B-Tree というのが2分探索木。

他1件のコメントを見る
匿名回答1号

枝葉末節。
木なだけに。

2015/03/12 00:29:40
匿名回答3号

>枝葉末節。
だれうまw

2015/03/13 14:17:51
匿名回答2号 No.2

C++ STLのstd::mapなどの実装には平衡2分木が使われていることがあります。JavaのTreeMapも赤黒木ですから2分木の一種ですね。これに限らず、知らないうちに使っていることは多いんじゃないかと思います。

配列やリストに比べてあまり表に出ないのは、色々なバリエーションがあってチューニングの勘どころも多いので、実装の詳細はカプセル化しておく方が何かと便利だからかなあ、という気がします。それと、バランシング操作などは結構ややこしくなることがあり、必要以上に中身を見せるメリットも少ないかと (途中のノードへのポインタを公開していたとしても、バランシングが起きると親や子の関係が変わるので、ライブラリユーザから見たら使いにくい。)

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません