Data Structures
Class Outline and Teaching Materials


Main Topics

  1. Asymtotic Notations [ terminology about sets, intuitive explanations (zh_TW), frequently seen functions, properties ]
    [tools: gnuplot (choose 5.2.8 => win64-mingw exe version), interactive mathjax]
  2. Simple Sorting Algorithms [ visualization, python repl, Hints for Newbie Programmers, selection sort, insertion sort, merge sort, comparison, ]
  3. Recursion: 8 Queens [ visualization, python, boilerplate code (zh_TW), more recursive problems, call by value vs call by reference, tail-recursive insertion sort ]
  4. Priority Queues and Heaps [ visualization, notes ]
  5. Queues and Stacks [ activation record in function calls, stack, 8 queens w/o recursion, circular queue: visualization, code; double-ended queue: g4g, wikipedia ]
  6. Pointers [ C/C++ pointers, no need for pointers in python, shallow copy vs deep copy (zh_TW), ]
  7. Linked Lists [ types, visualization, implementing, using, ]
  8. Graph and Binary Relations: binary relations: definitions and properties, more properties, examples (zh_TW); graph: terminologies, (archived,) more terminologies, comprehensive, two representations, examples of trees, rooted binary trees, terminology of rooted binary trees,
  9. expression tree: a parser, 3 DFS traversal algorithms, tree traversal in general, expression tree, parsing, infix/prefix/postfix notation
  10. binary search tree: visualization, code
  11. balanced search trees: 234 tree, animation ; red black tree: wikipedia, U of Cincinnati, Cornell, geeksforgeeks, visualization; b-tree; AVL tree
  12. Hash Tables: why?, basics
  13. Graph Algorithms:
  14. Practical Suggestions for Programmers

Reference Books

  1. Open Data Structures (in pseudocode) by Pat Morin
  2. Lecture Notes for Data Structures and Algorithms by John Bullinaria
  3. Lecture Notes on Data Structures by B. Padmaja
  4. Data Structures and Algorithms with Python by Kent D. Lee and Steve Hubbard (Also see other Springer books)

Appendix

  1. Pointers and References
  2. Python shallow copy vs deep copy: 1, 2, 3
  3. Data Structure Visualizations
  4. VisuAlgo

(back to course homepage)