1

空き時間に二分探索木を扱っていて、ツリーからノードを削除できるようにしたいと考えています。

これを機能させるには、最大値を見つける必要があります。どうやってそれをするつもりですか?疑似コードまたはヒントをいただければ幸いです。私は立ち往生しており、これを開始する方法さえ正確にはわかりません。

4

2 に答える 2

5

二分探索木には、次のプロパティがあります。

ノードの左側のサブツリーには、ノードのキーより小さいキーを持つノードのみが含まれます。ノードの右側のサブツリーには、ノードのキーより大きいキーを持つノードのみが含まれます。左と右の部分木は両方とも二分探索木でなければなりません。

その定義を念頭に置いて、最大値を見つけるのは非常に簡単です。

于 2012-04-30T23:46:16.653 に答える
0

簡単な疑似コードはこれです。二分探索には依存しないと思います。

int maxi = 0
foreach(array as item) // or any other loop
    if item>maxi then maxi = item
于 2012-04-30T23:50:32.203 に答える