This repository contains implementations of various data structures and algorithms in multiple programming languages. It is intended to serve as a reference and learning resource for students and developers interested in computer science and software engineering.
The following data structures are implemented in this repository:
- Linked List: a data structure that stores a collection of elements in a linear order.
- Stack: a data structure that follows the Last In First Out (LIFO) principle.
- Queue: a data structure that follows the First In First Out (FIFO) principle.
- Binary Tree: a data structure that consists of nodes linked in a hierarchical structure.
- Heap: a data structure that is used to efficiently retrieve the maximum or minimum element from a set of elements.
- Hash Table: a data structure that is used to store and retrieve key-value pairs.
- Graph: a data structure that is used to model a set of objects where some pairs of the objects are connected by links.
Each data structure implementation includes a description, implementation details, and sample usage code in various programming languages such as C++, Java, Python, and JavaScript.
The following algorithms are implemented in this repository:
- Sorting Algorithms: Bubble Sort, Insertion Sort, Selection Sort, Merge Sort, Quick Sort
- Search Algorithms: Linear Search, Binary Search
- String Algorithms: String Matching, Longest Common Subsequence
- Dynamic Programming Algorithms: Knapsack Problem, Matrix Chain Multiplication
Each algorithm implementation includes a description, implementation details, and sample usage code in various programming languages.
Contributions to this repository are welcome. If you find a bug, have a feature request, or want to contribute a new implementation, please submit an issue or pull request.