This Repository will Serve as a Hand-Book for Competitive-Coding in and beyond Engima. It houses the Description, Implementation, and Analysis of mostly used Data-Structures and Algorithms in any of your favorite language. Hope this Repository serves it's purpose well.
Kindly Follow the Contributing Guide.
Happy Learning :)
-
Data Structures
- Arrays
- Linked Lists
- Stacks
- Queues
- Binary Tree
- Binary Search Tree
- Heaps
- Hash-Tables
- Graphs
- Strings
- Matrix
- Advanced Data Structures
-
Algorithms
- Searching
- Sorting
- Graph Algorithms
- Pattern Searching
- Algorithms on Geometry
- Algorithms on Number Theory
- Randomized Algorithms
- Greedy Algorithms
- Dynamic Programming
- Divide n Conquer
- Back tracking
- Branch n Bound
- Fork this Repository and make a Pull Request.
- Every Data Structure and Algorithm can be implemented in any language of your choice. Just make sure you follow the rest of the contributing rules
- Data Structures are to be put into different folders. Each folder can have only one Implementation of the said Data-Structure in each language.
- Every Paradigm of Algorithms can have many algorithms belonging to them. Make sure you make a folder for each of these algorithms inside the correct paradigm. Each Algorithm may have several sub-folders according to the language of implementation of the Algorithm. Each of these Language Sub-Folders may have different implementation of the same algorithm.
- Each commit must properly be named and the PR must not have merge conflicts.
- Include proper documentation for the data structures and Algorithms you are implementing. So that it'll be easier for others to understand your approach and implementation.