230 likes | 243 Views
Prepare for the CS 3358 final exam by reviewing topics like programming, algorithms, data structures, and problem-solving. This review covers various concepts such as stack, queue, linked list, binary search tree, sorting, recursion, hashing, and more.
E N D
Final Exam Review CS 3358
Exam Format • 150 Total Points • 20 Points Writing Programs • 65 Points Tracing Algorithms, determining results, and drawing pictures • 50 Points Short Answer • 15 Multiple Choice • Similar to quizzes and programming assignments • Note: the point values are approximations
Example Programming Problem • Given the ADT for the Stack_3358 at the end of the exam, implement the push, pop, isEmpty and isFull functions.
Example Tracing Problems • What is the inorder traversal for the following BST? • What would the following heap look like after inserting 42? • What would this BST look like after deleting 42?
Example Short Answer • What is the Big O time analysis of the insert operation in a doubly linked list when inserting before the cursor?
Review of 2308 • ?? Points • Multiple files • Using header files • Command line arguments • OOP concepts. Especially those most useful for containers. • Overloaded operators • Copy constructors • Pointer variables • Understand the Climate and Go Fish programs • Obviously important concepts for the rest of the topics
Analysis of Algorithms • 30 points • Don’t memorize definition • Does the amount of work depend on the size of the input? • Should be able to rank as faster or slower • Be able to analyze algorithms and code and determine Big O time analysis • Especially most common. O(1), O(n), O(n2), O (log2n) • Look for loops • How fast does the problem shrink?
List ADT • 20 Points • Know the definition of the List ADT • May have to implement • Array-based list • Pointer-based linked list • Array-based linked list • Pointer-based doubly-linked list • Array-based doubly-linked list • Be able to do the time analysis for any of the functions in the List ADT definition we used for the program • Understand the List ADT program
Templates • 0 Points • Why? • Templated functions • Templated Classes • Understand the Stack Fun and Sort’em programs • Important, but not on exam
Stack ADT • 0 points • Understand basic functions • Push • Pop • IsEmpty • isFull • Should be able to implement array or linked list version of stack • Be able to use a stack to solve a problem • How does a stack relate to recursion? • Understand Stack Fun assignment
Queue ADT • 10 Points • Know the basic functions • Enqueue • Dequeue • isFull • isEmpty • Be able to implement circular array-based queue • Be able to implement a linked list version of a queue • Understand the Tree Search program
Recursion • 20 Points • Understand • Base case • Smaller caller • General case • Will have to write a recursive function • Be able to do time analysis of a recursive function • Understand math stuff, recursive flood fill, and especially binary search trees
Sorting • 10 Points • Algorithms • Will not have to code the sorts • Will likely have to draw or trace • Time and space considerations • O(n2) sorts • Selection sort • Insertion sort • O(nlog2n) sorts • Mergesort • Quicksort
Hashing • 20 Points • Hash tables • Hash Functions • Using strings as keys • Collisions • Separate chaining • Open Addressing • Linear probing • Quadratic probing • Double Hashing • Be able to hash a list of keys given a function and collision strategy
Trees • 40 Points • Definitions • Terminology: path, depth, height, etc. • General Trees vs. Binary Trees • Tree Traversals • Preorder • Inorder • Postorder • Binary Search Trees
Trees (cont.) • Binary Search Tree • Find • Insert • Delete • Count Nodes • Be able to code anything from BST_3358 • Understand the Tree Search
Heaps • 15 Points • Definitions • Full binary tree • Complete binary tree • Array-based implementation of binary trees • Parent-child relationships • Calculations to find nodes • Heap property • ReheapDown, ReheapUp
Priority Queues • 5 Points • Can be implemented as a heap • Know the algorithms • enQueue • deQueue • Be able to figure out Big O analysis of operations
HeapSort • 0 Points • Basic Algorithm • Transform array items into heap • Get smallest item and reheap until heap is empty • Big O analysis
Not on this exam • Code examples from the book • Only what we covered in class and on the programs
How to Study • Review the programs. • Rewrite them if you have time (especially the parts you had trouble with) • Learn by doing and recognizing patterns. • Use the exam for clues on the other problems and for help with syntax. • Don’t stay up late!! Get some sleep and eat a good breakfast.
What to bring • Pencils and erasers • We will provide scratch paper • No calculators