-
>
>
>
> Examples and Notes
Date
Description
2022-09-01
Compilers vs. Interpreters
Great Circle Distance Calculator
initial version
2022-09-06
Separate Compilation
Great Circle Distancce Calculator
with functions
in two separate files
with makefile
2022-09-08
stdin
,
stdout
; State Machines
(and
Ms. Pac-Man
)
Great Circle Distance with
scanf
and loop
Audio file splitter
(bonus:
with output files
; uses strings and arrays)
2022-09-13
Arrays and Strings
residuals.c
(arrays),
strings.c
(strings)
2022-09-15
Dynamic Memory Allocation
Code
2022-09-20 and 2022-09-22
More on memory, resizing arrays
Code
2022-09-27 and 2022-09-29
Linked lists, ADTs
Code
2022-10-04
Iterators, for each
Original list implementations
Using
list_get
with linked list (slow)
Using iterators (fast)
Using
list_for_each
Birthday problem using
list_for_each
2022-10-06
Sorting with comparison function; Generic lists
increasing-only sort
sort with comparison function
generic items
polymorphic
Exam #1 Practice
and
solutions
(see also Practice Quiz on Canvas)
2022-10-11
Map ADT; Hash tables
Unsorted Array Implementation
2022-10-13
Open addressing
2022-10-18
Chaining implementation
Chained Hash Tabble Implementation
CPython's string hash function
Java's
String
hash function
2022-10-27
Inserting into BST implementation
Binary Search Trees
2022-11-01
AVL Trees
2022-11-03
Red-Black Trees
Prefix Trees - Tries
2022-11-08
Priority Queues and Heaps
Heapsort
2022-11-10
k-d Trees
Building a balanced k-d Tree
2022-11-15
Sorting Algorithms
2022-11-17
Optional: Analysis of Comparison based Sorting Algorithms
Programming Techniques: Dynamic Programming
2022-11-29
Graphs
2022-12-01
Breadth-First Search, Depth-First Search, Topological Sort
2022-12-06
Dijkstra's Algorithm
2022-12-08
C++ inplementation of map as unsorted array with bike count application
with stack-allocated map
with
std::unordered_map
(hash-table-based map)
Second Half Practice for the Final Exam
and
solutions
(see also Practice Quiz on Canvas and Exam 1 Practice material)