空き時間に二分探索木を扱っていて、ツリーからノードを削除できるようにしたいと考えています。
これを機能させるには、最大値を見つける必要があります。どうやってそれをするつもりですか?疑似コードまたはヒントをいただければ幸いです。私は立ち往生しており、これを開始する方法さえ正確にはわかりません。
空き時間に二分探索木を扱っていて、ツリーからノードを削除できるようにしたいと考えています。
これを機能させるには、最大値を見つける必要があります。どうやってそれをするつもりですか?疑似コードまたはヒントをいただければ幸いです。私は立ち往生しており、これを開始する方法さえ正確にはわかりません。
二分探索木には、次のプロパティがあります。
ノードの左側のサブツリーには、ノードのキーより小さいキーを持つノードのみが含まれます。ノードの右側のサブツリーには、ノードのキーより大きいキーを持つノードのみが含まれます。左と右の部分木は両方とも二分探索木でなければなりません。
その定義を念頭に置いて、最大値を見つけるのは非常に簡単です。
簡単な疑似コードはこれです。二分探索には依存しないと思います。
int maxi = 0
foreach(array as item) // or any other loop
if item>maxi then maxi = item