CS
3100

Fall 2006

Study Guide

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.