データ構造の中でも、ただの配列やリストなんかはJavaプログラミングでよく見かけますが、2分探索木をプログラムの中で活用しているのを見たことがありません。言語実装とか、そういうところでしょうか?データ構造として、探索が速くなりそうだし、なんとなく使う機会はあるのかなと想像はできるのですが...。
データベースのインデックス。
B-Tree というのが2分探索木。
C++ STLのstd::mapなどの実装には平衡2分木が使われていることがあります。JavaのTreeMapも赤黒木ですから2分木の一種ですね。これに限らず、知らないうちに使っていることは多いんじゃないかと思います。
配列やリストに比べてあまり表に出ないのは、色々なバリエーションがあってチューニングの勘どころも多いので、実装の詳細はカプセル化しておく方が何かと便利だからかなあ、という気がします。それと、バランシング操作などは結構ややこしくなることがあり、必要以上に中身を見せるメリットも少ないかと (途中のノードへのポインタを公開していたとしても、バランシングが起きると親や子の関係が変わるので、ライブラリユーザから見たら使いにくい。)
枝葉末節。
2015/03/12 00:29:40木なだけに。
>枝葉末節。
2015/03/13 14:17:51だれうまw