Review for the Final
For every data structure below, you should know the time complexiy in
the average, worst and best case to eithr add, subtract, or find an
item.
- Linked Lists
- How to merge two ordered linked list (and complexities)
- When is it better to have ordered or unordered linked lists?
- Graphs
- Representing graphs via arrays
- Representing graphs via symetric arrays
- Representing graphs via nodes and pointers
- Djikstra's algorithm
- Floyd's algorithm (link)
(link
2)
- Hash Tables (link)
- Double Hashing or Quadratic Hashing
- Hashing with Linked Lists (Chaining)
- Hashing with Linear Probing
- Deleting from a hash table (and why it's hard)
- Sets
- Representing via bits
- Representing via lists/trees etc.
- Choosing which is best
- Computing union, intersection, negation
- Arrays
- Pointers (link)
- Those pesky pointer rules
- Deqs
- How to resize
- Amount
- What to copy
- How to copy (use memcpy)
- Push, Pop and modular arithmatic
- Operator Overloading
- Basic how-to
- Using ostream
- AVL Trees
- How it works in detail
- Inserting, deleting
- Remember, we really only delete a leaf node.
- Computing Height
- Rebalancing
- Red Black Trees
- The Basic Idea
- You don't have to know all the rules
- You don't have to know how to code
- Quick
- You should be able to write code to sort a linked list or array
given time
- Radix Sort