Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void rotateUp( Node* p ) // WIP
- {
- Node* A = p;
- Node* B = A.parent;
- Node* G = B.parent;
- // Which side is A
- Side S = A.side;
- // Fix Grand parent
- if( G !is null )
- {
- G.child[ B.side ] = A;
- } else {
- root = A;
- }
- // Fix parent links
- A.parent = B.parent;
- B.parent = A;
- // Then children
- B.child[ S] = A.child[!S];
- A.child[!S] = B;
- // Fix sides
- A.side = B.side;
- B.side = !S;
- auto two = A.child[!S];
- if( two !is null )
- two.side = S;
- }
Advertisement
Add Comment
Please, Sign In to add comment