The following are expectations of what you should know based on material
covered in lecture.  This material is covered in Sections 3.5, 7.1, 7.2,
8.3, 2.1, 3.3 and 11.1-11.3 of the Shiflet text.

Understand the labs as well as Project 2 on maze traversal.

Know how to implement a stack using linked lists.

Know how to implement a queue using linked lists.

Know how to traverse a linked list.

Know how to insert into a linked list at an arbitrary location (rather than
at just the beginning or the end).

Know how to find and delete a node from a linked list.

Understand that doubly-linked lists maintain a pointer to the previous and
next node.

Know the relative advantages and disadvantages of using linked lists versus
contiguous storage.

Understand when hashing is an appropriate technique to use.

Know how to construct a hash function.

Know what a collision is when hashing is used.

Know how to resolve hashing collisions using linear probing.

Understand how chaining is used with hashing.

Know the best, worst and expected number of comparisons used when hashing.

Understand what the term load factor means when using hashing.

Understand that hashing works can be efficient for insertion/retrieval of
information, but it is not conducive to traversal.

Know the difference between external and internal searching.

Know how a sequential search works for both an array and linked list
implementation.

Know the best, worst and expected number of comparisons when using a
sequential search.

Know the requirements for a binary search to be used.

Know how a binary search works.

Know the worst and expected number of comparisons when using a
sequential search.

Know what is meant by the use of ``big oh'' notation.

Know the big oh value for sequential and binary search.