This repository contains a comprehensive collection of C++ implementations of fundamental data structures and algorithms, organized into a structured learning path. It serves as a learning resource and reference guide for understanding core computer science concepts and algorithmic problem-solving, developed while studying CS fundamentals and algorithms with Phitron.
The repository is organized in a week-wise format, with each week containing multiple modules covering specific topics:
Data-Structure/
├── Week -1/ (Fundamentals)
│ ├── Module 1 (Basic Concepts)
│ ├── Module 2 (Core Structures)
│ ├── Module 2.5 (Extended Concepts)
│ ├── Module 3 (Advanced Topics)
│ ├── Module 3.5 (Specialized Implementations)
│ ├── Module 2 Practice
│ ├── Assignment 1
│ ├── Conceptual session 01
│ └── Conceptual session 02
│
├── Week - 2/ (Intermediate Structures)
│ ├── Module 5 (Stacks & Queues)
│ ├── Module 6 (Linked Lists)
│ ├── Module 6.5 (Advanced Linked Lists)
│ ├── Module 7 (Trees)
│ ├── Module 7.5 (Tree Variations)
│ ├── Assignment 2
│ ├── Conceptual session 1
│ └── Conceptual session 2
│
├── Week - 3/ (Advanced Data Structures)
├── Week - 4/ (Complex Algorithms)
├── Week - 5/ (Optimization Techniques)
└── Week - 6/ (Specialized Topics)
Each module contains implementations of specific data structures with both conceptual explanations and practical code examples.
This repository implements a wide range of fundamental and advanced data structures, including:
- Basic Concepts: Variables, data types, and control flow
- Arrays & Vectors: Static and dynamic array implementations
- Linked Lists: Singly linked lists, doubly linked lists, and circular variants
- Stacks: LIFO data structure with applications
- Queues: FIFO data structure and deque implementations
- Trees: Binary trees, binary search trees, AVL trees, and tree traversals
- Hash Tables & Maps: Hash-based data structures and collision resolution
- Graphs: Graph representations and traversal algorithms
- Searching & Sorting: Standard algorithms and their implementations
- Advanced Structures: Heaps, tries, and specialized data structures
- C++11 or later compiler (g++, clang, or MSVC)
- Linux, macOS, or Windows environment with a C++ toolchain
-
Clone the repository:
git clone https://github.com/fakrulislam0085/Data-Structure.git cd Data-Structure -
Navigate to a specific module:
cd "Week -1/Module 1"
-
Compile a C++ file:
g++ -std=c++11 filename.cpp -o executable_name
-
Run the compiled executable:
./executable_name
# Navigate to Week -1, Module 2
cd "Week -1/Module 2"
# Compile a linked list implementation
g++ -std=c++11 linked_list.cpp -o linked_list
# Run the program
./linked_listFollow the repository in order for a structured learning experience:
- Start with Week -1 for foundational concepts and basic data structures
- Progress to Week - 2 for intermediate structures like linked lists, stacks, and trees
- Continue with Weeks 3-6 for advanced algorithms and specialized data structures
Each week builds upon the previous concepts, integrating them into more complex implementations.
Each week includes:
- Module implementations: Core data structure code with explanations
- Assignments: Practical exercises to reinforce learning
- Conceptual sessions: Explanatory notes and problem-solving approaches
- Practice problems: Additional code examples and variations
This repository is part of the CS Fundamentals and Algorithms course offered by Phitron. The structured approach and curriculum follow Phitron's comprehensive learning methodology.
This repository serves three primary purposes:
- Learning: A structured guide for understanding data structures and algorithms
- Practice: Hands-on implementations to solidify CS concepts
- Reference: A quick lookup resource for common data structure implementations
- All code is written in C++ and follows standard conventions
- Each module is self-contained and can be studied independently
- Comments and explanations are included in the code for clarity
- Implementation focuses on correctness and educational value
This repository is a personal learning resource created for educational purposes.
For questions or feedback about the implementations, feel free to explore the code and refer to the course materials from Phitron.