This repository contains implementations of various data structures and algorithms commonly used in computer science and software development.
It serves as a resource for learning and understanding the fundamental concepts of data structures and algorithms.
-
Introduction
-
Data Structures
-
Algorithms
-
License
Understanding data structures and algorithms is crucial for writing efficient and scalable code. This repository aims to provide a collection of well-documented implementations of commonly used data structures and algorithms. Each implementation is written in a specific programming language and is accompanied by detailed explanations and examples to aid in comprehension.
The repository currently includes the following data structures:
- Array
- Linked List
- Stack
- Queue
- Hash Table
- Binary Tree
- Binary Search Tree
- Heap
- Graph
- Trie
- Union-Find
- AVL Tree
- Red-Black Tree
- B-tree
- Strings
Each data structure is organized into its own directory and contains the implementation file(s), along with a README file explaining the structure's characteristics, operations, and use cases.
The repository also includes implementations of various algorithms, such as:
- Sorting algorithms (e.g., Bubble Sort, Insertion Sort, Merge Sort, Quick Sort)
- Searching algorithms (e.g., Linear Search, Binary Search)
- Graph algorithms (e.g., Depth-First Search, Breadth-First Search, Dijkstra's Algorithm)
- Dynamic programming algorithms (e.g., Knapsack Problem, Longest Common Subsequence)
Similar to the data structures, the algorithms are organized into their respective directories and include explanation files detailing their time and space complexity, as well as example usage.
This repository is licensed to Gopi Gorantala(https://ggorantala.dev). Feel free to use the code in this repository for personal or educational purposes. Refer to the license file for more information.