Skip to content

Instantly share code, notes, and snippets.

@m0ar
Created February 18, 2015 11:56
Show Gist options
  • Save m0ar/292946ffb1421865f319 to your computer and use it in GitHub Desktop.
Save m0ar/292946ffb1421865f319 to your computer and use it in GitHub Desktop.
private void splay(Entry e){
if(e == null || e == root)
return;
if(e.parent == root){
if(e == e.parent.right) {
zig(e.parent);
root = e.parent;
return;
}else {
zag(e.parent);
root = e.parent;
return;
}
}
if(e == e.parent.right && e.parent == e.parent.parent.right) {
zigzig(e.parent.parent);
splay(e.parent.parent);
}else if(e == e.parent.left && e.parent == e.parent.parent.left) {
zagzag(e.parent.parent);
splay(e.parent.parent);
}else if(e == e.parent.left && e.parent == e.parent.parent.right){
zagzig(e.parent.parent);
splay(e.parent.parent);
}else {
zigzag(e.parent.parent);
splay(e.parent.parent);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment