Jump to content

Left rotation

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Rich Farmbrough (talk | contribs) at 12:34, 23 July 2019 (Date formats). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Left rotation refers to the following

  • In an array, moving all items to the next lower location. The first item is moved to the last location, which is now vacant.
  • In a list, removing the head and inserting it at the tail.
  • In machine code (and assembly language) moving all bits in a register to the left, with the leftmost (most significant bit) becoming the rightmost.

Tree rotation

In a binary search tree, a left rotation is the movement of a node, X, down to the left. This rotation assumes that X has a right child (or subtree). X's right child, R, becomes X's parent node and R's left child becomes X's new right child. This rotation is done to balance the tree; specifically when the right subtree of node X has a significantly (depends on the type of tree) greather height than its left subtree.

Left rotations (and right) are order preserving in a binary search tree; it preserves the binary search tree property (an in-order traversal of the tree will yield the keys of the nodes in proper order). AVL trees and red-black trees are two examples of binary search trees that use the left rotation.

A single left rotation is done in O(1) time but is often integrated within the node insertion and deletion of binary search trees. The rotations are done to keep the cost of other methods and tree height at a minimum.

References

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, 16 July 2001, Introduction to Algorithms, second edition. McGraw-Hill, ISBN 0-07-013151-1. Chapter 13.