Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

History

History
History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..

README.md

Outline

AVL Tree

Read this in other languages: Portugu锚s

In computer science, an AVL tree (named after inventors Adelson-Velsky and Landis) is a self-balancing binary search tree. It was the first such data structure to be invented. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by more than one, rebalancing is done to restore this property. Lookup, insertion, and deletion all take O(log n) time in both the average and worst cases, where n is the number of nodes in the tree prior to the operation. Insertions and deletions may require the tree to be rebalanced by one or more tree rotations.

Animation showing the insertion of several elements into an AVL tree. It includes left, right, left-right and right-left rotations.

AVL Tree

AVL tree with balance factors (green)

AVL Tree

AVL Tree Rotations

Left-Left Rotation

Left-Left Rotation

Right-Right Rotation

Right-Right Rotation

Left-Right Rotation

Left-Right Rotation

Right-Left Rotation

Right-Right Rotation

References

Morty Proxy This is a proxified and sanitized view of the page, visit original site.