0

配列などの他のストレージを使用せずに、バイナリ検索ツリーで可能なすべてのフルパス合計のk番目に大きいものを見つける方法はありますか?最初は、ポインタを増やしながら右からパスの合計を見つけ続けると、新しい合計はそれぞれ最小で、前の合計(最初は合計は無限大)で、カウントがに達すると発生すると思いましたk。ただし、リーフの最大値は自然に右から左に並べ替えられますが、合計はそうである必要はないことを発見しました。したがって、この方法は機能しません。これどうやってするの?

4

1 に答える 1

2

k-smallestを計算できる場合は、同じアルゴリズムでk-largestを計算できます。あなたがする必要があるのは、左から右ではなく右から左に物事をすることです。

于 2012-10-02T21:17:24.043 に答える