Advanced Tree Data Structures - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Advanced Tree Data Structures

Description:

Advanced Tree Data Structures Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park Overview Binary trees Balance ... – PowerPoint PPT presentation

Number of Views:641
Avg rating:3.0/5.0
Slides: 22
Provided by: ChauWe9
Category:

less

Transcript and Presenter's Notes

Title: Advanced Tree Data Structures


1
Advanced Tree Data Structures
  • Nelson Padua-Perez
  • Chau-Wen Tseng
  • Department of Computer Science
  • University of Maryland, College Park

2
Overview
  • Binary trees
  • Balance
  • Rotation
  • Multi-way trees
  • Search
  • Insert

3
Tree Balance
  • Degenerate
  • Worst case
  • Search in O(n) time
  • Balanced
  • Average case
  • Search in O( log(n) ) time

Degenerate binary tree
Balanced binary tree
4
Tree Balance
  • Question
  • Can we keep tree (mostly) balanced?
  • Self-balancing binary search trees
  • AVL trees
  • Red-black trees
  • Approach
  • Select invariant (that keeps tree balanced)
  • Fix tree after each insertion / deletion
  • Maintain invariant using rotations
  • Provides operations with O( log(n) ) worst case

5
AVL Trees
  • Properties
  • Binary search tree
  • Heights of children for node differ by at most 1
  • Example

6
AVL Trees
  • History
  • Discovered in 1962 by two Russian mathematicians,
    Adelson-Velskii Landis
  • Algorithm
  • Find / insert / delete as a binary search tree
  • After each insertion / deletion
  • If height of children differ by more than 1
  • Rotate children until subtrees are balanced
  • Repeat check for parent (until root reached)

7
Red-black Trees
  • Properties
  • Binary search tree
  • Every node is red or black
  • The root is black
  • Every leaf is black
  • All children of red nodes are black
  • For each leaf, same of black nodes on path to
    root
  • Characteristics
  • Properties ensures no leaf is twice as far from
    root as another leaf

8
Red-black Trees
  • Example

9
Red-black Trees
  • History
  • Discovered in 1972 by Rudolf Bayer
  • Algorithm
  • Insert / delete may require complicated
    bookkeeping rotations
  • Java collections
  • TreeMap, TreeSet use red-black trees

10
Tree Rotations
  • Changes shape of tree
  • Move nodes
  • Change edges
  • Types
  • Single rotation
  • Left
  • Right
  • Double rotation
  • Left-right
  • Right-left

11
Tree Rotation Example
  • Single right rotation

2
3
3
1
2
1
12
Tree Rotation Example
  • Single right rotation

3
5
2
5
3
6
6
4
1
4
2
1
Node 4 attached to new parent
13
Example Single Rotations
1
2
2
1
single left rotation
3
3
T
T
0
3
T
T
T
T
T
1
0
1
2
3
T
2
3
2
single right rotation
2
1
3
1
T
T
3
0
T
T
T
T
T
2
0
3
2
1
T
1
14
Example Double Rotations
2
1
right-left double rotation
3
1
3
2
T
T
0
2
T
T
T
T
T
3
0
3
1
2
T
1
2
3
left-right double rotation
1
1
3
2
15
Multi-way Search Trees
  • Properties
  • Generalization of binary search tree
  • Node contains 1k keys (in sorted order)
  • Node contains 2k1 children
  • Keys in jth child lt jth key lt keys in (j1)th
    child
  • Examples

5 12
5 8 15 33
2
17
8
44
1 3
19 21
9
7
16
Types of Multi-way Search Trees
5 12
  • 2-3 tree
  • Internal nodes have 2 or 3 children
  • Index search trie
  • Internal nodes have up to 26 children (for
    strings)
  • B-tree
  • T minimum degree
  • Non-root internal nodes have T-1 to 2T-1 children
  • All leaves have same depth

2
17
8
c
a
s
o
T-1 2T-1
1
2T
2

17
Multi-way Search Trees
  • Search algorithm
  • Compare key x to 1k keys in node
  • If x some key then return node
  • Else if (x lt key j) search child j
  • Else if (x gt all keys) search child k1
  • Example
  • Search(17)

25
5 12
30 40
1 2
17
8
27
44
36
18
Multi-way Search Trees
  • Insert algorithm
  • Search key x to find node n
  • If ( n not full ) insert x in n
  • Else if ( n is full )
  • Split n into two nodes
  • Move middle key from n to ns parent
  • Insert x in n
  • Recursively split ns parent(s) if necessary

19
Multi-way Search Trees
  • Insert Example (for 2-3 tree)
  • Insert( 4 )

5 12
5 12
2
17
8
2 4
17
8
20
Multi-way Search Trees
  • Insert Example (for 2-3 tree)
  • Insert( 1 )

5
5 12
2
12
1 2 4
17
8
1
17
8
4
2 5 12
Split parent
Split node
1
17
8
4
21
B-Trees
  • Characteristics
  • Height of tree is O( logT(n) )
  • Reduces number of nodes accessed
  • Wasted space for non-full nodes
  • Popular for large databases
  • 1 node 1 disk block
  • Reduces number of disk blocks read
Write a Comment
User Comments (0)
About PowerShow.com