
1. Linked list
2. HashMap
2.1. Implementation
2.1.1. non-threadsafe
2.1.2. threadsafe
2.2. Usage
2.2.1. Caches
3. Trees
3.1. Trie tree
3.1.1. Link
3.1.2. Used for storing info about words
3.1.3. Easy search
3.1.4. Usage
3.2. Binary
3.2.1. Unordered
3.2.2. BST
3.3. Algorithms
3.4. B-tree
3.4.1. Complexity
3.4.2. Links to next elements (organize single-linked list)
3.5. B+ tree
3.6. 2-4 Trees
3.7. Interval tree
3.8. General usage
3.9. Fenwick tree
4. Array/List
4.1. Algorithms
4.1.1. Sorting
4.1.1.1. Bubble sort
4.1.1.2. Merge sort
4.1.1.3. Insertion ort
4.1.1.4. Bucket sort
4.1.1.5. Quicksort
4.1.1.6. Table of complexity
4.1.1.7. Radix sort
4.1.1.8. Heapsort
4.1.1.9. All els greater than pivot move to list2
4.1.1.10. Counting sort
4.1.2. Min and max elements
4.1.2.1. Recursive
4.1.2.2. Non-recursive
4.1.2.3. Article
4.1.3. Find firt pair of dublicates
4.1.4. Find common elements in 2 arrays
4.1.5. Find a number in a sorted array
4.1.6. Find a median in distributed collection on thouands of servers
4.1.7. Maximum contigious ubsequent sum problem
5. Graphs
5.1. Algorithms
5.2. Directed
5.3. Acyclic
5.4. Usage
6. Stacks
6.1. With const time for push, pop, min
6.2. Usage
6.3. Features
6.3.1. O(1) of getting the head