Algorithms and Data Structures
Home Page
News
Lectures
Code
Demos
Links
Exercises
Q&A
Introduction
Introduction (ADS, who cares?)
How fast is fast?
Arrays & ArrayList (a 2nd look)
A small facebook
A first stab
java code for: ArrayList and Pair
A practical example
Linked Lists
Linked Lists (part 1)
Linked Lists (contd.)
Linked Lists (contd.(contd.)))
java code for StringList
java code for DList
java code for generic List
Recursion
Recursion (Recursion (Recursion (stop it!)))
recursive code for pure lists
recursive drawing of btrees and htrees
fib, fact, arith, knapsack, perm, sets, McCarthy, palindrome ...
Analysis of Algorithms
Analysis of Algorithms (complexity)
Asymptotic Analysis of Algorithms
Experiments on linear and binary search
Stacks and Queues
Queues
ADT's, Stacks (part 1)
ADT's, Stacks (part 2)
java examples
ArrayStack
NodeStack
Generic Queue (linked list implementation)
Reverse Polish Integer Calculator
Lists & Iterators & Comparators (slides with code)
Generic Lists and Iterators
Comparators and Comparable
Binary Trees & Trees
Binary Trees
Binary Search Trees (insert, delete, ...)
AVLTtrees
Splay trees
Multi-way trees (and 2_mTrees)
Red-Black Trees
Anatomy of a bug
java examples
Binary Tree
Binary Search Tree
2_4 Trees
AVL Tree
Binary Search Tree Experiment
AVL Tree Experiment
Priority Queues
Priority Queue and the Heap
Sorting
Sorting and Merging and Merge Sorting
Quick & Bucket & Radix Sorting
Ineffective Sorts
Tim Sort
Astrachan's Archaelogical Algorithmic Analysis
sort experiment
TimSort is broken
java examples
bubble/selection/gnome sort
insertion/merge/quick sort
Hash Tables, Maps, Dictionaries
Hash Tables
Maps and Dictionaries
java examples
a hash table excursion
map using Hash and Tree
All Questions Answered (and revision)
Patrick Prosser
2017.