- By
**lou** - Follow User

- 111 Views
- Uploaded on

Download Presentation
## 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
- Additional operations:
- ascend()
- get(index)
- remove(index)

Three cases:### The Operation remove()

- Element is in a leaf.
- Element is in a degree 1 node.
- Element is in a degree 2 node.

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

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).

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

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.

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.

Download Presentation

Connecting to Server..