Professional Documents
Culture Documents
In AVL tree insertion and deletion operations involve rotation. It makes the
operations complicated. To eliminate this complication 2-3 tree can be used.
Many search tree operations take time proportional to the height of the tree.
Keep the height small: make the tree balanced.
2-3 trees are one kind of balanced search trees.
Slide 2
Introduction
A 2-3 Tree is a tree data
structure where every node with
children has either two children
and one data element or three
children and two data elements.
A node with 2 children is called a
2-NODE and a node with 3
children is called a 3-NODE. A 4-
NODE, with three data elements,
may be temporarily created
during manipulation of the tree
but is never persistently stored
in the tree.
Slide 3
2-3 Trees
each node can hold 1 or 2 keys
each non-leaf node has either 2
or 3 nonempty child nodes. These
are again 2-3 tree.
all leaves are at the same level.
If any node has 2 children, then
this node has single data.
If any node has 3 children, then
this node may have 2 key data.
Slide 4
Struct twothree
{
Int count;
Structure of a Int data[3];
Slide 5
Example of 2-3 Tree
Slide 6
Search tree (2-3 Trees) property
Slide 8
Can maintain balance much better in insertion
Binary Search
Tree both trees after
inserting items
39, 38, ... 32
2-3 Tree
Slide 9
Inserting an item
To insert a value in a 2-3 tree, first search the position where the value can
be inserted.
Search for the key and locate the leaf in which the search stops.
Insert the key into the leaf.
Leaf holds 2 keys: done!
Leaf holds 3 keys: Needs more work..
Slide 10
Inserting Items
Insert 39
Slide 11
Inserting Items
Insert 38
divide leaf
insert in leaf and move middle result
value up to parent
Slide 12
Inserting Items
Insert 37
Slide 13
Inserting Items
Insert 36
divide leaf
insert in leaf and move middle
value up to parent
overcrowded
node
Slide 14
Inserting Items
... still inserting 36
Slide 15
Inserting Items
After Insertion of 35, 34, 33
Slide 16
Inserting so far
Slide 17
Height of a 2-3 tree
The minimum height occurs in a 2-3 tree only when each node is a 3 node. The maximum height occurs only
when each node is a 2 node.
A tree has height h has at least +………..=
+…..+ =
Number of leaves ≥ 2h where h is tree height
So h ≤ log (number of leaves)
number of leaves < number of nodes
number of nodes ≤ number of stored keys = n
h < log n.
search, insert, delete can be done in time O(h) = O(log n).
Slide 18
Inserting so far
Slide 19
Inserting Items
How do we insert 32?
Slide 20
Inserting Items
Slide 21
Inserting Items
Final Result
Slide 22
Deleting Items
Deletion of a value from a 2-3 tree is just opposite to insertion. Two nodes are merged if the node of the value
To be deleted contains minimum number of values.
Delete 70
70
80
Slide 23
Note
Slide 24
Deleting Items
Deleting 70: swap 70 with inorder successor (80)
Slide 25
Deleting Items
Deleting 70: ... get rid of 70
Slide 26
Deleting Items
Result
Slide 27
Slide 28
Deleting Items
Delete 100
Slide 29
Deleting Items
Deleting 100
Slide 30
Deleting Items
Result
Slide 31
Deleting Items
Delete 80
Slide 32
Deleting Items
Deleting 80 ...
Slide 33
Deleting Items
Deleting 80 ...
Slide 34
Deleting Items
Deleting 80 ...
Slide 35
Deleting Items
Final Result
comparison with
binary search tree
Slide 36
Deletion Algorithm I
Deleting item I:
Slide 37
Deletion Algorithm II
Redistribution
A sibling has 2 items:
redistribute item
between siblings and
parent
Merging
No sibling has 2 items:
merge node
move item from parent
to sibling
Slide 38
Deletion Algorithm III
Redistribution
Internal node n has no item left
redistribute
Merging
Redistribution not possible:
merge node
move item from parent
to sibling
adopt child of n
Slide 39
Deletion Algorithm IV
If merging process reaches the root and root is without item
delete root
Slide 40
Remarks
Search, insert, delete take time proportional to height, and hence to log
n, where n is the number of keys.
Other balanced tree organizations are also possible, e.g. AVL trees, Red-
Black trees
AVL and Red-Black are both binary.
Red-Black trees are obtaining by converting a 3 node to two 2 nodes.
We will study neither of these.
Slide 41
Multiway search tree
A multiway tree is defined as a tree that can have more than two children. If a multiway tree can have
maximum m children, then this tree is called as multiway tree of order m.
M way search tree is a tree where each node contains multiple elements, (M-1) values per node.
It has M subtrees. M is called degree of nodes.
If M=3, then tree will contain 2 values per node, and it will have a three subtrees.
The goal of m-Way search tree of height h calls for O(h) no. of accesses for an insert/delete/retrieval
operation.