community
directory
books
authors
images
encyclopedia

Email:
Password:
Register

Knowledgerush Search

 

Google
  Web knowledgerush


Search for images of Tree rotation


Message boards   Post comment

Tree rotation

A tree rotation is an operation on a binary search tree that changes the structure without interfering with the order of the elements. A tree rotation moves one node up in the tree and one node down. Tree rotations are used to balance some kinds of trees to improve performance.

Examples

The tree
       D
      / \
     /   \
    B     E
   / \
  A   C
can be rotated to look like
     B
    / \
   /   \
  A     D
       / \ 
      C   E 

This is called a right rotation. Going from the second tree to the first would be a left rotation.

If we write our tree nodes as (left subtree, nodevalue, right subtree), then the first structure is ((A, B, C), D, E), and the second is (A, B, (C, D, E)), and computing one from the other is very simple:

def right_rotation(treenode):
    left, D, E = treenode
    A, B, C = left
    return (A, B, (C, D, E))

There are also "double left" and "double right" rotations, which can be written as compositions of left and right rotations.

Tree rotations are used in AVL trees, red-black trees, splay trees, and others.

Reference: this page has some excellent (Free) java applets demonstrating tree rotations. (can we add applets to the Wiki?)

Referenced By

List of graph theory topics | List of mathematical topics (S-U)

 

Compose Your Message

Your Email Address or Pen Name (optional):
Subject:
Your Message:
 

 

 

 

 

 

This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article "Tree rotation".

 

Contact UsPrivacy Statement & Terms of Use

 
Copyright © 1999-2003 Knowledgerush.com. All rights reserved.