2. AVL TREE
A binary search tree x is called an AVL tree, if:
b(x.key) {1, 0, 1}, and
x.leftChild and x.rightChild are both AVL trees = the height balance of every node
must be -1, 0, or 1
A
B C
D E
0 0
0 0
1
Named after their inventor Adelson, Velski & Landis, AVL trees are height
balancing binary search tree.
3. Balance Factor.
AVL tree checks the height of the left and the right sub-trees and assures that the
difference is not more than 1 or less then -1. This difference is called the Balance
Factor.
BalanceFactor = height(left-subtree) height(right-subtree)
4. AVL ROTATIONS
To balance itself, an AVL tree may perform the following four kinds of rotations
Left rotation
Right rotation
Left-Right rotation
Right-Left rotation
The first two rotations are single rotations and the next two rotations are double
rotations. To have an unbalanced tree, we at least need a tree of height 2. With this
simple tree, let's understand them one by one.
5. LEFT & RIGHT ROTATION
If a tree becomes unbalanced, when a
node is inserted into the right subtree of
the right subtree, then we perform a single
left rotation
AVL tree may become unbalanced, if a
node is inserted in the left subtree of the
left subtree. The tree then needs a right
rotation.
6. LEFT-RIGHT ROTATIONS
Double rotations are slightly complex version of already explained versions of rotations.
To understand them better, we should take note of each action performed while
rotation. Let's first check how to perform Left-Right rotation.
7. RIGHT-LEFT ROTATIONS
The second type of double rotation is Right-Left Rotation. It is a combination of right
rotation followed by left rotation.
9. HASHING
Searching technique based on hash table.
It is the application of a function to the key value that results in mapping the range of
possible key values into smaller range of relative address.
If two different Keys have assign same address then Collision occurs.
Data
{ Key H(K)
Hash Function
Address
K1
K2
H(K) Address{Collision
10. TYPES OF HASHING FUNCTIONS
Direct Hashing.
Modulo - Division Hashing.
Mid - Square Hashing.
Folding Hashing.
Pseudo Random Hashing.
Subtraction Hashing.
11. DIRECT HASHING
No algorithmic Manipulation.
No collision (Minimum no of collisions).
Limited.
Not suitable for large key values.
12. MODULO - DIVISION HASHING
Also known as Division - Remainder.
Works with any list size.
If list size is a prime no than fewer collisions.
In Which K is a Key and n is a List size.
H(K) = K mod n
13. MID - SQUARE HASHING
Middle of square.
Key is squared and the address is selected from the middle of the square no.
Problem :-
Non-Uniform distribution of the key.
14. FOLDING HASHING
1- FOLD SHIFT HASHING
Key value is divided into two parts whose size matches the size of the required
address.
2- FOLD BOUNDARY HASHING
Left and Right no are folded on a fixed boundary between them and the
center no.
15. PSEUDO RANDOM HASHING
In which a is a Chosen Coefficient c is a Constant and n is a List size.
Y = ax + c
X = key
H(K) = Y mod n
16. SUBTRACTION HASHING
Subtract a fixed no from key.
In which c is a fixed no.
Like Direct Hashing.
No Collision.
Suitable for small lists.
H(K) = K-c