Non capisco bene perché la rotazione nella struttura dei dati dell'albero di visualizzazione stia prendendo in considerazione non solo il genitore del nodo di classificazione, ma anche il nonno (operazione a zig-zag e zig-zig). Perché non dovrebbe funzionare quanto segue:
Quando inseriamo, ad esempio, un nuovo nodo nella struttura, controlliamo se inseriamo nella sottostruttura sinistra o destra. Se inseriamo a sinistra, ruotiamo il risultato DESTRA e viceversa per la sottostruttura destra. Ricorsivamente sarebbe stato così
Tree insert(Tree root, Key k){
if(k < root.key){
root.setLeft(insert(root.getLeft(), key);
return rotateRight(root);
}
//vice versa for right subtree
}
Ciò dovrebbe evitare l'intera procedura di "splay", non credi?