0% found this document useful (0 votes)
43 views3 pages

24 Trees

The document discusses (2,4) trees, which are multi-way search trees used to implement dictionaries. A (2,4) tree has the properties that each internal node has 2-4 children and all leaf nodes are at the same depth. Basic operations like search, insertion, and deletion run in O(log n) time where n is the number of items in the tree. Insertion may cause overflow at a node, handled by splitting it into two nodes. Deletion may cause underflow, handled by fusing nodes or transferring children between adjacent sibling nodes. The height of a (2,4) tree is O(log n), making all operations efficient.

Uploaded by

Van Bao Nguyen
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views3 pages

24 Trees

The document discusses (2,4) trees, which are multi-way search trees used to implement dictionaries. A (2,4) tree has the properties that each internal node has 2-4 children and all leaf nodes are at the same depth. Basic operations like search, insertion, and deletion run in O(log n) time where n is the number of items in the tree. Insertion may cause overflow at a node, handled by splitting it into two nodes. Deletion may cause underflow, handled by fusing nodes or transferring children between adjacent sibling nodes. The height of a (2,4) tree is O(log n), making all operations efficient.

Uploaded by

Van Bao Nguyen
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Outline and Reading (2,4) Trees

9 2 5 7 10 14

Multi-way search tree (9.3)


Definition Search Definition Search Insertion Deletion

(2,4) tree (9.4)


Comparison of dictionary implementations


4/1/2003 8:31 AM (2,4) Trees 1 4/1/2003 8:31 AM (2,4) Trees 2

Multi-Way Search Tree


A multi-way search tree is an ordered tree such that

Multi-Way Inorder Traversal


We can extend the notion of inorder traversal from binary trees to multi-way search trees Namely, we visit item (ki, oi) of node v between the recursive traversals of the subtrees of v rooted at children vi and vi + 1 An inorder traversal of a multi-way search tree visits the keys in increasing order 11
8

Each internal node has at least two children and stores d 1 key-element items (ki, oi), where d is the number of children For a node with children v1 v2 vd storing keys k1 k2 kd1
keys in the subtree of v1 are less than k1 keys in the subtree of vi are between ki1 and ki (i = 2, , d 1) keys in the subtree of vd are greater than kd1

The leaves store no items and serve as placeholders 11 2 6 8 15 24 27

24
12

2 6 8 32 30
1 2 3 4 5 6 7 9

15
10 11 13

27
14

32
18

30
16 15 17
4

19

4/1/2003 8:31 AM

(2,4) Trees

4/1/2003 8:31 AM

(2,4) Trees

Multi-Way Searching
Similar to search in a binary search tree A each internal node with children v1 v2 vd and keys k1 k2 kd1

(2,4) Tree
A (2,4) tree (also called 2-4 tree or 2-3-4 tree) is a multi-way search with the following properties

Reaching an external node terminates the search unsuccessfully Example: search for 30 11 2 6 8 15 24 27 30
4/1/2003 8:31 AM (2,4) Trees 5 4/1/2003 8:31 AM

k = ki (i = 1, , d 1): the search terminates successfully k < k1: we continue the search in child v1 ki1 < k < ki (i = 2, , d 1): we continue the search in child vi k > kd1: we continue the search in child vd

Node-Size Property: every internal node has at most four children Depth Property: all the external nodes have the same depth

Depending on the number of children, an internal node of a (2,4) tree is called a 2-node, 3-node or 4-node 10 15 24 2 8 12 18 27 32

32

(2,4) Trees

Height of a (2,4) Tree


Theorem: A (2,4) tree storing n items has height O(log n) Proof:

Insertion
We insert a new item (k, o) at the parent v of the leaf reached by searching for k

Let h be the height of a (2,4) tree with n items Since there are at least 2i items at depth i = 0, , h 1 and no items at depth h, we have n 1 + 2 + 4 + + 2h1 = 2h 1 Thus, h log (n + 1)

We preserve the depth property but We may cause an overflow (i.e., node v may become a 5-node)
10 15 24 2 8 12 18

Example: inserting key 30 causes an overflow v


27 32 35

Searching in a (2,4) tree with n items takes O(log n) time


depth items 1 0 1 h1 h 2 2h1 0
(2,4) Trees 7 4/1/2003 8:31 AM

10 15 24 2 8 12
(2,4) Trees

v
27 30 32 35
8

18

4/1/2003 8:31 AM

Overflow and Split


We handle an overflow at a 5-node v with a split operation:

Analysis of Insertion
Algorithm insertItem(k, o) 1. We search for key k to locate the insertion node v 2. We add the new item (k, o) at node v

let v1 v5 be the children of v and k1 k4 be the keys of v node v is replaced nodes v' and v"
v' is a 3-node with keys k1 k2 and children v1 v2 v3 v" is a 2-node with key k4 and children v4 v5

Let T be a (2,4) tree with n items

key k3 is inserted into the parent u of v (a new root may be created)

The overflow may propagate to the parent node u u


15 24

u
15 24 32

v
12 18 27 30 32 35 12 18

v'
27 30

v"
35

3. while overflow(v) if isRoot(v) create a new empty root above v v split(v)

Tree T has O(log n) height Step 1 takes O(log n) time because we visit O(log n) nodes Step 2 takes O(1) time Step 3 takes O(log n) time because each split takes O(1) time and we perform O(log n) splits

v1 v2 v3 v4 v5
4/1/2003 8:31 AM (2,4) Trees

v1 v2 v3 v4
9

v5
4/1/2003 8:31 AM (2,4) Trees

Thus, an insertion in a (2,4) tree takes O(log n) time


10

Deletion
We reduce deletion of an item to the case where the item is at the node with leaf children Otherwise, we replace the item with its inorder successor (or, equivalently, with its inorder predecessor) and delete the latter item Example: to delete key 24, we replace it with 27 (inorder successor)
10 15 24 2 8 12 18 27 32 35

Underflow and Fusion


Deleting an item from a node v may cause an underflow, where node v becomes a 1-node with one child and no keys To handle an underflow at node v with parent u, we consider two cases Case 1: the adjacent siblings of v are 2-nodes

Fusion operation: we merge v with an adjacent sibling w and move an item from u to the merged node v' After a fusion, the underflow may propagate to the parent u

u
10 15 27 2 8 12 18 32 35

9 14 10

u w v
2 5 7

9 10 14

2 5 7

v'

4/1/2003 8:31 AM

(2,4) Trees

11

4/1/2003 8:31 AM

(2,4) Trees

12

Underflow and Transfer


To handle an underflow at node v with parent u, we consider two cases Case 2: an adjacent sibling w of v is a 3-node or a 4-node

Analysis of Deletion
Let T be a (2,4) tree with n items

Transfer operation: 1. we move a child of w to v 2. we move an item from u to v 3. we move an item from w to u After a transfer, no underflow occurs

Tree T has O(log n) height We visit O(log n) nodes to locate the node from which to delete the item We handle an underflow with a series of O(log n) fusions, followed by at most one transfer Each fusion and transfer takes O(1) time

In a deletion operation

u
4 9 2 6 8

u
4 8

Thus, deleting an item from a (2,4) tree takes O(log n) time


4/1/2003 8:31 AM (2,4) Trees 14

4/1/2003 8:31 AM

(2,4) Trees

13

Implementing a Dictionary
Comparison of efficient dictionary implementations Search Hash Table Skip List (2,4) Tree
4/1/2003 8:31 AM

Insert 1
expected

Delete 1
expected

Notes
no ordered dictionary methods simple to implement randomized insertion simple to implement

1
expected

log n
high prob.

log n
high prob.

log n
high prob.

log n
worst-case

log n
worst-case

log n
worst-case

complex to implement

(2,4) Trees

15

You might also like