This repo demonstrates how to implement many common data structures and algorithms. It's main purpose was for my learning, but you may be able to learn something too!
To learn how they work (and sharpen my programming skills), I implemented the below data structures and used them to solve problems. I put most of them through their paces with automated testing, too.
- ArrayList
- String and StringBuilder
- Vector
- Graph (adjacency list and adjacency matrix)
- Heap (min and max)
- LinkedList
- HashMap
- HashSet
- TreeMap
- Queue
- Priority queue (using a heap)
- Stack
- Tree (AVL and Red-Black)
- Trie
- HashTable
- Max heap
- LinkedList (singly and doubly linked)
- Queue
- Stack
- Tree (binary and binary search)
I implemented the most common sorting algorithms (heap sort, quick sort, etc), and even more while completing some practice questions (such as topological sort).