1.
Introduction
2.
Binary search tree
2.1.
Tree and Node
2.1.1.
Basic APIs
2.1.2.
Tree population
2.1.3.
Tree find
2.1.4.
Node delete (Two children)
2.1.5.
Node delete (One or no child)
2.1.6.
Tree delete
2.2.
Additional APIs
2.2.1.
Tree minimum
2.2.2.
Tree exists
2.2.3.
Tree identical
2.2.4.
Tree contains
2.2.5.
Tree iterator
2.2.6.
Tree into iterator
2.2.7.
Tree height
2.2.8.
LCA
2.2.9.
Nth smallest
2.2.10.
Kth smallest
2.2.11.
From sorted array
2.2.12.
Tree validation
2.2.13.
Tree update
3.
Dubley linkedlist
3.1.
Node and List
3.2.
Push front and push back
3.3.
Pop front and pop back
3.4.
List delete
3.4.1.
Delete helpers
3.5.
List iterators
3.5.1.
Mutable iterator
3.5.1.1.
Iterating back
3.5.2.
Bidirectional iterator
4.
Sorting algorithms
4.1.
Bubble sort
4.2.
Insertion sort
4.3.
Selection sort
4.4.
Merge sort
4.5.
Quick sort
5.
LRU cache
6.
Heap
6.1.
Max heap
6.2.
Min heap
6.3.
Max min heap
7.
Trie
8.
Longest common prefix/suffixes
8.1.
Longest common prefix
8.2.
Longest common suffix
9.
String permutation
10.
Merge k sorted arrays
11.
Concatenated substring indices
12.
Pascal's triangle
13.
Two sum
14.
Sell stock
15.
Product except self
16.
Max sub array sum
17.
Max vowels in substring
Light
Rust
Coal
Navy
Ayu
Programming Problems & Data Structures in Rust
Sorting algoriths
We present sorting algorithms in the following sections.