- 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

### The Operation remove()

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

### Remove From A Degree 2 Node

### Remove From A Degree 2 Node

### Remove From A Degree 2 Node

### Remove From A Degree 2 Node

### Another Remove From A Degree 2 Node

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 Operationsget(), put() and remove()D is number of buckets

Complexity Of Other Operationsascend(), get(index), remove(index)- Three cases:
- Element is in a leaf.
- Element is in a degree 1 node.
- Element is in a degree 2 node.

10

40

6

15

30

18

25

35

2

8

7

Remove from a degree 1 node. key = 15

10

40

6

15

30

18

25

35

2

8

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

7

10

40

6

15

30

18

25

35

2

8

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

7

8

40

6

15

30

18

25

35

2

8

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

7

8

40

6

15

30

18

25

35

2

8

7

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

10

40

6

15

30

18

25

35

2

8

7

Remove from a degree 2 node. key = 20

Yet Other Operations

- Priority Queue Motivated Operations:
- find max and/or min
- remove max and/or min
- initialize
- meld

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.

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.

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.

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.

Download Presentation

Connecting to Server..