Self Balancing Trees Data Structures and Algorithms CSE 373 SP 18 - - PowerPoint PPT Presentation

self balancing trees
SMART_READER_LITE
LIVE PREVIEW

Self Balancing Trees Data Structures and Algorithms CSE 373 SP 18 - - PowerPoint PPT Presentation

Self Balancing Trees Data Structures and Algorithms CSE 373 SP 18 - KASEY CHAMPION 1 Warm Up What will the binary search tree look like if you insert nodes in the following order: 5, 8, 7, 10, 9, 4, 2, 3, 1 What is the pre-order traversal


slide-1
SLIDE 1

Self Balancing Trees

Data Structures and Algorithms

CSE 373 SP 18 - KASEY CHAMPION 1

slide-2
SLIDE 2

Warm Up

What will the binary search tree look like if you insert nodes in the following order: 5, 8, 7, 10, 9, 4, 2, 3, 1 What is the pre-order traversal order for the resulting tree?

Socrative:

www.socrative.com Room Name: CSE373 Please enter your name as: Last, First

CSE 373 SP 18 - KASEY CHAMPION 2

slide-3
SLIDE 3

Implement Dictionary

Binary Search Trees allow us to:

  • quickly find what we’re looking for
  • add and remove values easily

Dictionary Operations: Runtime in terms of height, “h” get() – O(h) put() – O(h) remove() – O(h)

What do you replace the node with? Largest in left sub tree or smallest in right sub tree

CSE 373 SP 18 - KASEY CHAMPION 3

10 “foo” 7 “bar” 12 “baz” 9 “sho” 5 “fo” 15 “sup” 13 “boo” 8 “poo” 1 “burp”

slide-4
SLIDE 4

Implementing Put and Remove

CSE 373 SP 18 - KASEY CHAMPION 4

slide-5
SLIDE 5

Height in terms of Nodes

For “balanced” trees h ≈ logc(n) where c is the maximum number of children Balanced binary trees h ≈ log2(n) Balanced trinary tree h ≈ log3(n) Thus for balanced trees operations take Θ(logc(n))

CSE 373 SP 18 - KASEY CHAMPION 5

slide-6
SLIDE 6

Unbalanced Trees

Is this a valid Binary Search Tree? Yes, but… We call this a degenerat enerate e tree ee For trees, depending on how balanced they are, Operations at worst can be O(n) and at best can be O(logn) How are degenerate trees formed?

  • insert(10)
  • insert(9)
  • insert(7)
  • insert(5)

CSE 373 SP 18 - KASEY CHAMPION 6

10 9 7 5

slide-7
SLIDE 7

Measuring Balance

Measuring balance: For each node, compare the heights of its two sub trees Balanced when the difference in height between sub trees is no greater than 1

CSE 373 SP 18 - KASEY CHAMPION 7

10 8 15 7 12 18 8 7 7 8 7 9

slide-8
SLIDE 8

Meet AVL Trees

AVL Trees es must satisfy the following properties:

  • binary trees: all nodes must have between 0 and 2 children
  • binary search tree: for all nodes, all keys in the left subtree must be smaller and all keys in the right subtree

must be larger than the root node

  • balanced: for all nodes, there can be no more than a difference of 1 in the height of the left subtree from the
  • right. Math.abs(height(left subtree) – height(right subtree)) ≤ 1

AVL stands for Adelson-Velsky and Landis (the inventors of the data structure)

CSE 373 SP 18 - KASEY CHAMPION 8

slide-9
SLIDE 9

Is this a valid AVL tree?

CSE 373 SP 18 - KASEY CHAMPION 9

7 4 10 3 9 12 5 8 11 13 14 2 6 Is it…

  • Binary
  • BST
  • Balanced?

yes yes yes

slide-10
SLIDE 10

Is this a valid AVL tree?

CSE 373 SP 18 - KASEY CHAMPION 10

6 2 8 1 7 12 4 9 10 13 11 3 5 Is it…

  • Binary
  • BST
  • Balanced?

yes yes no Height = 2 Height = 0

slide-11
SLIDE 11

Is this a valid AVL tree?

CSE 373 SP 18 - KASEY CHAMPION 11

8 6 11 2 15 7

  • 1

9 Is it…

  • Binary
  • BST
  • Balanced?

yes no yes 9 > 8 5

slide-12
SLIDE 12

Implementing an AVL tree dictionary

Dictionary Operations: get() – same as BST containsKey() – same as BST put() - ??? remove() - ???

CSE 373 SP 18 - KASEY CHAMPION 12

Add the node to keep BST, fix AVL property if necessary Replace the node to keep BST, fix AVL property if necessary

1 2 3 Unbalanced! 2 1 3

slide-13
SLIDE 13

Rotations!

CSE 373 SP 18 - KASEY CHAMPION 13

a b X c Y Z a b X Y Z c a b X Y Z Insert ‘c’ Unbalanced! Balanced!

slide-14
SLIDE 14

Rotations!

CSE 373 SP 18 - KASEY CHAMPION 14

a b X c Y Z a b X Y Z c a b X Y Z Insert ‘c’ Unbalanced! Balanced!

slide-15
SLIDE 15

Practice

CSE 373 SP 18 - KASEY CHAMPION 15

15 8 22 4 24 10 3 19 6 20 17 put(16); 16

slide-16
SLIDE 16

Practice

CSE 373 SP 18 - KASEY CHAMPION 16

15 8 22 4 24 10 3 19 6 20 17 put(16); 16

slide-17
SLIDE 17

So much can go wrong

CSE 373 SP 18 - KASEY CHAMPION 17

1 3 2 Unbalanced! 3 1 2 Rotate Left Unbalanced! Rotate Right 1 3 2 Unbalanced!

slide-18
SLIDE 18

Two AVL Cases

CSE 373 SP 18 - KASEY CHAMPION 18

1 3 2 1 2 3 Line Case Solve with 1 rotation Kink Case Solve with 2 rotations 3 2 1

Rotate Right Parent’s left becomes child’s right Child’s right becomes its parent

Rotate Left Parent’s right becomes child’s left Child’s left becomes its parent 3 1 2 Rotate subtree left Rotate root tree right Rotate subtree right Rotate root tree left

slide-19
SLIDE 19

Double Rotations 1

CSE 373 SP 18 - KASEY CHAMPION 19

a e W d Y Z a e X X Z Insert ‘c’ Unbalanced! d X Y c a d W Y Z X e c

slide-20
SLIDE 20

Double Rotations 2

CSE 373 SP 18 - KASEY CHAMPION 20

a d W Y Z X e c Unbalanced! a d W Y Z X e c