Dynamic Dictionaries

1 / 32

# Dynamic Dictionaries - PowerPoint PPT Presentation

Dynamic Dictionaries. Primary Operations: get(key) => search put(key, element) => insert remove(key) => delete Additional operations: ascend() get(index) remove(index). n is number of elements in dictionary. Complexity Of Dictionary Operations get(), put() and remove().

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Dynamic Dictionaries' - lou

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Dynamic Dictionaries
• Primary Operations:
• get(key) => search
• put(key, element) => insert
• remove(key) => delete
• ascend()
• get(index)
• remove(index)
20

10

40

6

15

30

25

2

8

### The Operation put()

35

Put a pair whose key is 35.

Three cases:
• Element is in a leaf.
• Element is in a degree 1 node.
• Element is in a degree 2 node.

20

10

40

6

15

30

18

25

35

2

8

7

### Remove From A Leaf

Remove a leaf element. key = 7

20

10

40

6

15

30

18

25

35

2

8

7

### Remove From A Degree 1 Node

Remove from a degree 1 node. key = 40

20

10

40

6

15

30

18

25

35

2

8

7

### Remove From A Degree 1 Node (contd.)

Remove from a degree 1 node. key = 15

20

10

40

6

15

30

18

25

35

2

8

7

### Remove From A Degree 2 Node

Remove from a degree 2 node. key = 10

20

### Remove From A Degree 2 Node

10

40

6

15

30

18

25

35

2

8

Replace with largest key in left subtree (or smallest in right subtree).

7

20

### Remove From A Degree 2 Node

10

40

6

15

30

18

25

35

2

8

Replace with largest key in left subtree (or smallest in right subtree).

7

20

### Remove From A Degree 2 Node

8

40

6

15

30

18

25

35

2

8

Replace with largest key in left subtree (or smallest in right subtree).

7

20

### Remove From A Degree 2 Node

8

40

6

15

30

18

25

35

2

8

7

Largest key must be in a leaf or degree 1 node.

20

10

40

6

15

30

18

25

35

2

8

7

### Another Remove From A Degree 2 Node

Remove from a degree 2 node. key = 20

20

### Remove From A Degree 2 Node

10

40

6

15

30

18

25

35

2

8

7

Replace with largest in left subtree.

20

### Remove From A Degree 2 Node

10

40

6

15

30

18

25

35

2

8

7

Replace with largest in left subtree.

18

### Remove From A Degree 2 Node

10

40

6

15

30

18

25

35

2

8

7

Replace with largest in left subtree.

18

### Remove From A Degree 2 Node

10

40

6

15

30

25

35

2

8

7

Complexity is O(height).

Yet Other Operations
• Priority Queue Motivated Operations:
• find max and/or min
• remove max and/or min
• initialize
• meld
20

10

40

6

15

30

25

2

8

Max And/Or Min
• Follow rightmost path to max element.
• Follow leftmost path to min element.
• Search and/or remove => O(h) time.
20

10

40

6

15

30

25

2

8

Initialize
• Sort n elements.
• Initialize search tree.
• Output in inorder (O(n)).
• Initialize must take O(n log n) time, because it isn’t possible to sort faster than O(n log n).
5

10

1

12

6

15

10

17

7

2

8

6

17

8

2

15

7

12

1

5

Meld
Meld And Merge
• Worst-case number of comparisons to merge two sorted lists of size n each is 2n-1.
• So, complexity of melding two binary search trees of size n each is W(n).
• So, logarithmic time melding isn’t possible.
8

10

2

15

1

6

15

1

6

10

2

8

O(log n) Height Trees
• Full binary trees.
• Exist only when n = 2k –1.
• Complete binary trees.
• Exist for all n.
• Cannot insert/delete in O(log n) time.

=

+

Balanced Search Trees
• Height balanced.
• AVL (Adelson-Velsky and Landis) trees
• Weight Balanced.
• Degree Balanced.
• 2-3 trees
• 2-3-4 trees
• red-black trees
• B-trees
AVL Tree
• binary tree
• for every node x, define its balance factor

balance factor of x = height of left subtree of x

– height of right subtree of x

• balance factor of every node x is – 1, 0, or 1
-1

1

1

### Balance Factors

-1

0

1

0

0

-1

0

This is an AVL tree.

0

0

0

Height Of An AVL Tree

The height of an AVL tree that has n nodes is at most 1.44 log2 (n+2).

The height of every n node binary tree is at least log2 (n+1).

log2 (n+1) <= height <=1.44 log2 (n+2)

Proof Of Upper Bound On Height
• Let Nh = min # of nodes in an AVL tree whose height is h.
• N0 = 0.
• N1 = 1.
L

R

Nh, h > 1
• Both L and R are AVL trees.
• The height of one is h-1.
• The height of the other is h-2.
• The subtree whose height is h-1 has Nh-1nodes.
• The subtree whose height is h-2 has Nh-2nodes.
• So, Nh =Nh-1 + Nh-2 + 1.
Fibonacci Numbers
• F0 = 0, F1 = 1.
• Fi =Fi-1 + Fi-2 , i > 1.
• N0 = 0, N1 = 1.
• Nh =Nh-1 + Nh-2 + 1, i > 1.
• Nh =Fh+2 – 1.
• Fi ~ fi/sqrt(5).
• f = (1 + sqrt(5))/2.
-1

10

1

1

7

40

-1

0

1

0

45

3

8

30

0

-1

0

0

0

60

35

1

20

5

0

25