Skip to content

fakrulislam0085/Data-Structure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structure Implementations in C++

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.

Repository Structure

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.

Topics Covered

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

How to Use

Prerequisites

  • C++11 or later compiler (g++, clang, or MSVC)
  • Linux, macOS, or Windows environment with a C++ toolchain

Building and Running

  1. Clone the repository:

    git clone https://github.com/fakrulislam0085/Data-Structure.git
    cd Data-Structure
  2. Navigate to a specific module:

    cd "Week -1/Module 1"
  3. Compile a C++ file:

    g++ -std=c++11 filename.cpp -o executable_name
  4. Run the compiled executable:

    ./executable_name

Example Workflow

# 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_list

Learning Path

Follow 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.

Assignments and Practice

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

Course Reference

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.

Purpose

This repository serves three primary purposes:

  1. Learning: A structured guide for understanding data structures and algorithms
  2. Practice: Hands-on implementations to solidify CS concepts
  3. Reference: A quick lookup resource for common data structure implementations

Notes

  • 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

License

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.

About

A comprehensive collection of C++ implementations of fundamental data structures and algorithms organized by learning weeks. This repository serves as a learning resource and reference guide for understanding core CS concepts and algorithmic problem-solving.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages