06.09.2014 Views

Splay Trees

Splay Trees

Splay Trees

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

DELETE (S, k) {<br />

if ( MEMBER(S, k) ){<br />

then SL = (*S)->left<br />

if ( SL )<br />

then SL->parent = NIL<br />

SR = (*S)->right<br />

if ( SR )<br />

then SR->parent = NIL<br />

join(SL, SR, S)<br />

}<br />

}<br />

JOIN (SL, SR, S){<br />

if ( SL )<br />

then<br />

}<br />

else<br />

return<br />

SPLIT (S, SL, SR, in){<br />

If ( S )<br />

then<br />

}<br />

else<br />

return<br />

member( &SL, PLUS_INFINIT)<br />

SL->right = SR<br />

if ( SR )<br />

then SR->parent = SL<br />

*S = SL<br />

if ( SR )<br />

then *S = SR<br />

else<br />

*S = NIL<br />

*SR = *SL = NIL<br />

MEMBER( &S, in)<br />

*SL = S<br />

*SR = S->right<br />

(*SL)->right = NIL<br />

SINGLEROTATE ( x ){<br />

if ( x->parent->left = x )<br />

then zig_left(&x)<br />

else<br />

zig_right(&x)<br />

}<br />

DOUBLEROTATE( x ){<br />

if ( x->parent->left == x and x->parent->parent->left == x->parent)<br />

then zig_zig_left(&x)<br />

return<br />

if ( x->parent->left == x and x->parent->parent->right == x->parent)<br />

then zig_zag_left(&x)<br />

return<br />

if (x->parent->right == x and x->parent->parent->right == x->parent)<br />

then zig_zig_right(&x)<br />

return<br />

5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!