Je ne comprends pas très bien pourquoi la rotation dans la structure de données de l'arbre d'affichage prend en compte non seulement le parent du nœud de notation, mais aussi le grand-parent (opération zig-zag et zig-zig). Pourquoi les éléments suivants ne fonctionneraient-ils pas:
Lorsque nous insérons, par exemple, un nouveau nœud dans l'arbre, nous vérifions si nous insérons dans le sous-arbre gauche ou droit. Si nous insérons à gauche, nous faisons pivoter le résultat à DROITE, et vice versa pour le sous-arbre droit. Récursivement, ce serait comme ça
Tree insert(Tree root, Key k){
if(k < root.key){
root.setLeft(insert(root.getLeft(), key);
return rotateRight(root);
}
//vice versa for right subtree
}
Cela devrait éviter toute la procédure de "splay", vous ne pensez pas?