スプレーツリーのデータ構造のローテーションが、評価ノードの親だけでなく、祖父母(ジグザグおよびジグジグ操作)も考慮に入れている理由がよくわかりません。以下が機能しないのはなぜですか。
たとえば、ツリーに新しいノードを挿入するときに、左または右のサブツリーに挿入するかどうかを確認します。左に挿入すると、結果が右に回転し、右のサブツリーではその逆になります。再帰的にはこのようになります
Tree insert(Tree root, Key k){
if(k < root.key){
root.setLeft(insert(root.getLeft(), key);
return rotateRight(root);
}
//vice versa for right subtree
}
それは「スプレイ」手順全体を回避するはずですよね?