Study Guide for CS 313E Test 2 (Spring 2017) * You are responsible for material in chapters 1 through 5 in the book. * 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. * Use Stacks to do depth first search and Queues to do breadth first search. * 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, and merging 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. * You may bring a cheat sheet (8.5" x 11") with you with hand written notes on both sides of the paper.