This repository is a collection of various data structures implemented in C/C++. The goal is to provide a hands-on learning resource for understanding the core concepts and algorithms behind fundamental data structures, such as stacks, queues, trees, graphs, and more.
The primary purpose of this repository is to:
- Demonstrate the implementation of common data structures.
- Showcase how these data structures are used in practice.
The repository is organized into subdirectories, each corresponding to a specific data structure. Each subdirectory contains:
- A
README.mdwith an explanation of the data structure. - Code examples showing how to implement and use the data structure.
- hash_table: Implementation and explanation of the Hash Table data structure.
- linked_lists: Different types of linked lists (e.g., singly, doubly linked lists).
- pattern_searching: Different pattern searching algorithms such as Naive String Matching, Rabin-Karp, Knuth-Morris-Pratt (KMP) and Aho-Corasick.
- queue: Implementation and explanation of the Queue data structure.
- recursion: Implements some functions that uses recursion such as Binary Search.
- sort: Different sorting algorithms such as Bubble, Insertion, Heap, Merge, Quick and Radix sort.
- stack: Implementation and explanation of the Stack data structure.
- trees: Various tree structures such as Binary Tree, Binary Indexed Tree (Fenwick Tree), Expression Tree, Heap, Huffman Tree and Segment Tree .
- graphs: Graph representations and traversal algorithms.
No installation is required! Simply browse through the directories to explore the data structures and their implementations.
You can clone this repository to your local machine:
git clone https://github.com/guhkadoo/data_structures.git