CS
3100
Fall 2006
Study Guide
As part of your review process, I recommend you study:
- Notes from class
- Reread book chapter
- Lab assignments
- Look over exercises at the end of the chapter in the book.
Chapter Eleven -- Tables and
Priority Queues
- Know what the "basic operations" are that "define the ADT
table". Understand what these operations do well enough to
write specifications for them.
- Be aware of the advantages and disadvantages of various
implementations of the ADT table. In particular if I name a table
operation, you should be able to discuss how efficient that operation
can be made in various table implementations.
- Know what the "basic operations" are that "define the ADT
priority queue". Understand what these operations do
well enough to write specifications for them.
- Understand how to implement a priority queue using an ordered
list, binary search tree, or heap. Understand the advantages and
disadvantages of the various implementations.
- Know how to define a heap. Know how to implement a heap with the
array implementation described in the text. Understand how insertion
and deletion are performed in this implementation.
- Know how heapsort works -- how it transforms a randomly ordered
array into a heap, and how it then uses the heap deletion operation to
sort the array. Be able to discuss its efficiency in relation to other
sorting algorithms we have studied.
Chapter Twelve -- Advanced
Implementations of Tables
- Know the definition of hashing. Know the advantages and
disadvantages of hashing relative to other implementations of the ADT
table.
- Know what a hash function is. Know what a perfect hash function
is. Know the two properties that a good hash function must have. Know
several examples of hash functions.
- Understand the need for collision resolution. Know the
definitions of open addressing and separate chaining and understand how
to implement these forms of collision resolution.
- Understand the following terms: primary and
secondary clustering, quadratic hashing, double hashing. Understand why
it is desirable to make the size of a hash table a prime or an integer
without any small divisors.