Lec13 - Fall2010 DataStructures Lecture13 FangYu...

Info iconThis preview shows pages 1–11. Sign up to view the full content.

View Full Document Right Arrow Icon
Data Structures Lecture 13 Fang Yu Department of  Fall 2010
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Advance ADTs ¡ Ordered Maps, Dictionaries and Skip Lists
Background image of page 2
Ordered Maps ¡ Keys are assumed to come from a total order. ¡ New operations:  ¡ firstEntry(): entry with smallest key value null ¡ lastEntry(): entry with largest key value ¡ floorEntry(k):entry with largest key £  k ¡ ceilingEntry(k): entry with smallest key ‡  k ¡ These operations return null if the map is empty
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Binary Search ¡ Binary search can perform operations get, floorEntry  and ceilingEntry  on an ordered map implemented by  means of an array-based sequence, sorted by key ¡ similar to the high-low game ¡ at each step, the number of candidate items is halved ¡ terminates after O(log n) steps Binary Search Trees
Background image of page 4
Binary Search ¡ Example: find(7) 1 3 4 5 7 8 9 11 14 16 18 19 1 3 4 5 7 8 9 11 14 16 18 19 1 3 4 5 7 8 9 11 14 16 18 19 1 3 4 5 7 8 9 11 14 16 18 19 0 0 0 0 m l h m l h m l h l = m = h
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Search Tables ¡ A search table is an ordered map implemented by  means of a sorted sequence ¡ We store the items in an array-based sequence,  sorted by key ¡ We use an external comparator for the keys
Background image of page 6
Search Tables ¡ Performance: ¡ get, floorEntry and ceilingEntry take  O (log n )  time, using  binary search ¡ insert takes  O ( n )  time since in the worst case we have to  shift  n  items to make room for the new item ¡ remove take  O ( n )  time since in the worst case we have to  shift  n  items to compact the items after the removal ¡ The lookup table is effective only for dictionaries of  small size or for dictionaries on which searches are  the most common operations, while insertions and  removals are rarely performed (e.g., credit card  authorizations)
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Dictionary ¡ A dictionary models a searchable collection of key- element entries ¡ The main operations of a dictionary are searching,  inserting, and deleting items ¡ Multiple items with the same key are allowed ¡ Applications: ¡ word-definition pairs ¡ credit card authorizations ¡ DNS mapping of host names (e.g., datastructures.net) to  internet IP addresses (e.g., 128.148.34.101)
Background image of page 8
Dictionary ADT ¡ Dictionary ADT methods: ¡ get(k): if the dictionary has an entry with key k,  returns it, else, returns null  ¡ getAll(k): returns an iterable collection of all entries  with key k ¡ put(k, o): inserts and returns the entry (k, o)  ¡ remove(e): remove the entry e from the dictionary ¡ entrySet(): returns an iterable collection of the  entries in the dictionary ¡ size(), isEmpty()
Background image of page 9

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Example Operation Output Dictionary put(5,A) (5,A) (5,A) put(7,B) (7,B) (5,A),(7,B) put(2,C) (2,C) (5,A),(7,B),(2,C) put(8,D) (8,D) (5,A),(7,B),(2,C),(8,D) put(2,E) (2,E) (5,A),(7,B),(2,C),(8,D),(2,E)
Background image of page 10
Image of page 11
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 28

Lec13 - Fall2010 DataStructures Lecture13 FangYu...

This preview shows document pages 1 - 11. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online