Data-Structures-In-Java
Data-Structures-In-Java copied to clipboard
Data Structures implemented in Java
Data-Structures-in-Java
This repository contains various data structures and provide insights about them. Feel free to create an issue if you see one in any of the implementations.
Data Structures :
These is just a basic set, we have lot of other data structures as well,
-
Linear
- Index Based
- Arrays
- Non Index Based
- List
- Queue
- Stack
- Index Based
-
Non Linear
- Hash Tables
- Set
- Priority Queue
- Tree
- Balanced
- Red Black Tree
- AVL Tree
- Splay Tree
- Non Balanced
- Binary Tree
- Binary Search Tree
- B Tree
- Trie
- Balanced
-
[X] Choosing the right data structure
Below topics/problems are covered as of now.
1. Strings
- [X] String Introduction
- [X] StringBuilder Implementation
2. Arrays
- [X] Arrays Introduction
- [X] Basic operations on Arrays
- [X] Associative Array
- [X] Sparse Array
- [X] Pair
- [X] Tuple
- [X] ArrayList Implementation
3. LinkedList
- [X] Linked List Introduction
- [X] Singly LinkedList Implementation
- [X] Doubly LinkedList Implementation
- [X] Circular LinkedList Implementation
4. Stack
- [X] Stack Introduction
- [X] Simple stack from list
- [X] Array based Implementation
- [X] LinkedList based Implementation
- [X] Queue based Implementation
5. Queue
- [X] Queue Introduction
- [X] Array based Implementation
- [X] LinkedList based Implementation
- [X] Stack based Implementation
6. Vector
- [X] Vector Introduction
- [X] Vector Implementation
7. Matrix
- [ ] Matrix Introduction
- [ ] Sparse Matrix
8. Trees
- [X] Introduction
- [X] Binary Tree
- [X] Binary Search Tree
- [X] AVL Tree
- [ ] Splay Tree
- [ ] B Tree
- [ ] B+ Tree
- [ ] Segment Tree
- [ ] Red Black Tree
- [ ] K Dimensional Tree
- [ ] Suffix Tree
- [ ] A B Tree
9. Graphs
- [X] Introduction
- [ ] How graphs are represented in memory
- [X] Graph Implementation
- [ ] MultiGraph Implementation
- [X] BFS for Graphs
- [X] DFS for Graphs
10. Heap
- [ ] Introduction
- [ ] Binary Heap
- [ ] Min Heap
- [ ] Max Heap
- [ ] Binomial Heap
- [ ] Fibonacci Heap
- [ ] Weak Heap
11. Hashing
- [X] Introduction
- [X] Iterator v/s Enumeration
- [X] HashTable v/s HashMap
- [X] HashCode and Equals Contract
- [ ] Bloom Filter
- [ ] Lookup Table
- [ ] Collision Handling
- [ ] Separate Chaining
- [ ] Linear Probing
- [ ] Double Hashing
- [X] HashMap Implementation
- [X] ConcurrentHashMap Introduction
- [X] ConcurrentHashMap Implementation
- [X] ConcurrentModification Exception
- [X] WeakHashMap Implementation
- [X] HashTable Implementation
- [ ] Distributed HashTable
- [ ] HashSet Implementation
- [ ] HashList Implementation
- [ ] Dictionary Implementation
- [ ] MultiMap
12. Set
- [X] Introduction
- [X] Set Implementation
- [ ] MultiSet
13. Priority Queue
- [ ] Introduction
- [ ] Array based Implementation
- [ ] Stack based Implementation
- [X] Dequeue Implementation
- [ ] Skip List
14. Trie
- [X] Introduction
- [X] Trie Implementation
15. Treap
- [ ] Introduction
- [ ] Treap Implementation
16. Cache
- [X] Introduction
- [X] LRU Cache
- [X] MRU Cache
17. Miscellaneous
- [ ] Bag
- [X] Linked List Based
- [ ] Binary Search Tree Based
18. Common Utils
- [X] StringUtils
- [X] NumberUtils
- [X] ArrayUtils
- [X] BooleanUtils
- [X] CollectionUtils
- [X] MapUtils
19. Iterators
- [X] Standard Iterator
- [ ] Deep Iterator
- [ ] Filtering Iterator
- [X] Hopping Iterator
- [ ] InOrder Iterator
- [X] LevelOrder Iterator
- [X] MaxIterator Iterator
- [ ] MultiIterator Iterator
- [ ] Peek Iterator
- [ ] PreOrder Iterator
- [ ] Rotating Iterator