Dear CS 2500 Class -- Here are study questions that you can work on to get ready for the third quiz on. You will notice that all of these questions are "goals" taken from the beginnings of the chapters in Dale and Lilly. -- john sarraille ====================================================================== Chapter Six Goals: Linear Lists ====================================================================== * Be able to describe a list at a logical level. * Be able to define a set of operations for the abstract list data type. * Be able to use the list operations to implement utility routines to do the following application-dependent tasks: Print the list of elements in order Create a list of elements from a file Write a list to a file * Be able to describe how an ordered list may be implemented as an array-based structure or a linked structure. * Be able to implement the following list operations for both array-based and linked implementations: Create and destroy a list Determine whether the list is empty or full Determine the number of elements Retrieve an element Insert an element Delete an element Reset the list Get the next list element * Be able to contrast the array-based and linked implementations of a list in terms of the Big-O approximations of their operations. ====================================================================== Chapter Eight Goals: Programming With Recursion ====================================================================== * Be able to do the following, given a recursive routine: determine whether the routine halts, determine the base case(s), determine the general case(s), determine what the routine does, determine whether the routine is correct and, if it is not, correct it. * Be able to do the following, given a simple recursive problem: determine the base case(s), determine the general case(s), design and code the solution as a recursive procedure or function. * Be able to verify a recursive routine, according to the Three-Question Method. * Be able to decide whether a recursive solution is appropriate for a given problem. * Be able to explain why recursion may or may not be a good choice to implement the solution to a problem. ====================================================================== Chapter Nine Goals: Binary Search Trees ====================================================================== * Be able to define and use the following terms: binary tree binary search tree root parent child ancestor descendant level height subtree * Be able to define a binary search tree at the logical level. * Be able to show what a binary search tree would look like after a series of insertions and deletions. * Be able to implement the following binary search tree algorithms in Pascal: creating an empty tree, inserting an element, deleting an element, retrieving an element, replacing an element, counting the number of nodes, traversing a tree in preorder, inorder, and postorder. ====================================================================== ======================================================================