Algorithms & Data Structures

Resources

Notes

  1. Abstract Data Types
  2. Generics & Type Parameters
  3. Autoboxing & Auto-unboxing
  4. Iterating over Collections
  5. Stacks
  6. Postfix Expressions
  7. Evaluating Fully Parenthesized Infix Expressions
  8. The N-Queens Problem & Backtracking
  9. Delimiter Matching
  10. The Shunting Yard Algorithm
  11. Linked Lists
  12. Analysis of Algorithms
  13. Sorting - First Thoughts
  14. Bubble Sort
  15. Selection Sort
  16. Insertion Sort
  17. Merge Sort
  18. Quick Sort Analysis
  19. Comparing Sorting Algorithms
  20. Binary Search Trees
  21. Graphs
  22. Representing Graphs
  23. Traversing Graphs
  24. Connected Components
  25. Six Degrees of Separation
  26. Examples of Digraph Applications
  27. Dijkstra's Shortest Path Algorithm
  28. The A* Algorithm
  29. Web Search Engines
  30. Some Results from Graph Theory
  31. Prim's Algorithm

Practice Exercises

  1. Review Exercises (Set A)
  2. Review Exercises (Set A2)
  3. Review Exercises (Set B)
  4. Review Exercises (Set B2)
  5. Review Exercises (Set C)
  6. Review Exercises (Set C2)

Java Implementations

  1. Queue (Array Based)
  2. Bag
  3. The Shunting Yard Algorithm
  4. Linked List (Double Ended)
  5. Two "Helper" Methods for Sorting
  6. Bubble Sort Trace
  7. Selection Sort Trace
  8. Insertion Sort Trace
  9. Merge Sort Trace
  10. Quicksort Trace
  11. Binary Search Tree (BST)
  12. Graph
  13. Depth-First Pathfinder (Recursive)
  14. Breadth-First Pathfinder
  15. Identify Connected Components
  16. Digraph
  17. Edge
  18. DirectedEdge
  19. DirectedWeightedEdge
  20. WeightedGraph
  21. EdgeWeightedDirectedGraph
  22. MinPQ
  23. IndexMinPQ
  24. tinyEWG
  25. tinyEWDG
  26. Dijkstra's Shortest Path Algorithm
  27. Prim's Algorithm to find a Minimal Spanning Tree (Lazy Version)
  28. Feedforward with Back-propagation Neural Network
  29. Tester for Neural Network

Projects

  1. Number Guessing Game
  2. Infix to Prefix
  3. Turtle Graphics and L-Systems
  4. The N-Queens Problem
  5. Navigating a Maze
  6. Reverse Revisited
  7. Comparing Sorting Methods
  8. Searching the IMDb Dataset
  9. Comparing Hashes
  10. FaceSpace
  11. Chase the Mouse (Over a Terrain)