自己均衡ツリー(AVL)を指定して、中央値を返すメソッドをコーディングします。
(中央値:データサンプルの上半分と下半分を区切る数値。例:系列が
2、7、4、9、1、5、8、3、6
中央値は5です。)
私は次の解決策を提供できます:
- 指定されたツリーをトラバースし、要素の数を返します。
- 木をトラバース
n / 2 + 1
(n
奇数の場合)して、順番にツリーウォークを適用します。値n / 2 + 1
番目の要素は、中央値です。
しかし、二分探索木でそれを行うことができますか?AVLに適したアルゴリズムはありますか?
1
リンクはすでにあなたの質問に答えています—あなたは何をもっと探していますか?
—
Yuval Filmus
通常、バイナリ検索ツリーの検索アルゴリズムはAVLツリーで機能しますが、AVLを使用すると、ツリーの高さがノード数の対数であるという追加の保証が得られます。
—
jmite 2015