1

ここ ( http://www.nocow.cn/index.php/Code:Splay_Tree/C ) (最初のもの)で説明されているような、トップダウンのスプレイでスプレイ ツリーを実装しようとしています。サブツリーがそのノードのルートである各ノードでサブツリーのサイズも維持するボトムアップ スプレー バージョンを既に実装しています (つまり、サイズ = 1 + 左 -> サイズ + 右 -> サイズ)。

各スプレイ操作と同様に、ノードをルートまで上に移動していたので、ローテーションごとにすべての先祖を更新する必要はありませんでした。しかし、トップダウン バージョンでは、各ノード (および他の種類の不変条件) でこのサブツリー サイズの値を維持する方法がわかりません。各回転で先祖を再帰的に更新する必要はありません。

つまり、トップダウンのスプレイ操作を行っているときに、各ノードでサブツリーのサイズを維持するにはどうすればよいですか? (上記のページに記載されているスプレイ操作の修正版があればいいのですが)

4

1 に答える 1