Data Structures with TDD
- Singly LinkedList
- Stack
- Queue
- HashTable
- Set
- Tree
- Graph
- Binary Search Tree
TODO:
- Doubly LinkedList
- Circular Buffer (Circular Queue)
- Other kinds of graphs
Graphs and Trees
- Implement depth-first search (pre-, in-, post-order) on a tree
- Implement breadth-first search on a tree
- Determine the height of a tree
- Create a binary search tree with minimal height from a sorted array
- Create a linked list for each level of a binary tree
- Check if a binary tree is balanced
- Determine if a tree is a valid binary search tree
- Implement depth-first search on a graph
- Implement breadth-first search on a graph
- Determine if there is a path between two nodes in a graph
- Print a tree using pre-order traversal without recursion
- Determine the lowest common ancestor of two nodes
- Transform a binary tree into a heap
- Implement a right and left rotation on a tree
- Check if a binary tree is binary search tree
Data Structure Operations
| Access | Search | Insertion | Delete --- | --- | --- | --- | --- | --- | Array | | Stack | | Singly LinkedList | | Doubly LinkedList | | Hash Table | | Binary Search Tree | |
Want to implement data structures on your own and watch the tests pass? Fork this branch, clone the repo and checkout the new-slate branch.
$ git clone https://github.com/polinadotio/this-project.git
$ git checkout -b my-branch origin/new-branch
$ open SpecRunner.html