Study Guide for CS 313E Test 2 (Spring 2018) * You are responsible for material in chapters 1 through 19 in the book. There will be no questions on Turtle Graphics. * Define simple classes * Define an algorithm and its characteristics. Know what is meant by algorithm analysis and Big-O notation. * You should be able to apply the Stack or Queue class to solve simple problems, like RPN or balancing parenthesis. * You should be able to add to the functionality of the LinkedList class, modify the LinkedList class (think Circular Lists or Doubly LinkedList), or apply the LinkedList class to solve simple problems, like linked list representation of polynomials. * Recursion - be able to go from iterative code to recursive code - trace recursive code - given an algorithm write the recursive version of that algorithm - permutation, combination, all subsets, and back tracking - Look at Recursion-2 problems in the Java section of Coding Bat. * The questions on the test will involve the algorithms on sorting, searching, merging, hashing and the data structures we covered in class - stacks, queues, and linked lists * You should be familiar with the following sorting algorithms - selection sort, bubble sort, insertion sort, merge sort and quick sort. You should be able to trace each of the algorithms for a given array. For hashing, you should know how to hash and linear probing, quadratic probing, and double hashing. * You may bring a single cheat sheet (8.5" x 11") with you with hand written notes on both sides of the paper.