Skip to content

Latest commit

 

History

History
336 lines (224 loc) · 4.92 KB

File metadata and controls

336 lines (224 loc) · 4.92 KB

🚀 Data Structures and Algorithms in C++

A comprehensive collection of Data Structures, Algorithms, C++ STL, and LeetCode solutions implemented in C++ as part of my learning journey.

This repository serves as a personal DSA knowledge base, interview preparation resource, and problem-solving portfolio.

📖 About This Repository

This repository is dedicated to learning and practicing:

  • Data Structures
  • Algorithms
  • Problem Solving
  • Competitive Programming Concepts
  • Interview Preparation

All programs are written in C++ with a focus on understanding concepts, optimizing solutions, and improving coding skills.


📚 Topics Covered

🔢 Arrays

  • Array Traversal
  • Insertion & Deletion
  • Searching
  • Rotation Problems
  • Prefix Sum Concepts

🔍 Searching Algorithms

  • Linear Search
  • Binary Search
  • Lower Bound
  • Upper Bound
  • Search-Based LeetCode Problems

📊 Sorting Algorithms

  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Merge Sort
  • Quick Sort
  • Counting Sort
  • Sorting-Based Problem Solving

🔗 Linked Lists

  • Singly Linked List
  • Doubly Linked List
  • Circular Linked List
  • Insertion Operations
  • Deletion Operations
  • Reversal
  • Searching
  • Linked List Interview Problems

📚 Stack

  • Stack using Arrays
  • Stack using Linked Lists
  • Push
  • Pop
  • Peek
  • Parentheses Matching
  • Expression Evaluation

🚶 Queue

  • Simple Queue
  • Circular Queue
  • Queue using Linked List
  • Deque Basics

🌳 Trees

  • Binary Tree

  • Binary Search Tree (BST)

  • Tree Traversals

    • Inorder
    • Preorder
    • Postorder
    • Level Order

🌐 Graphs

  • Graph Representation
  • Breadth First Search (BFS)
  • Depth First Search (DFS)

🔄 Recursion

  • Basic Recursion Problems
  • Recursive Thinking
  • Backtracking Fundamentals

⚡ C++ STL (Standard Template Library)

Containers

  • Vector
  • Pair
  • Array
  • List
  • Stack
  • Queue
  • Priority Queue
  • Set
  • Multiset
  • Unordered Set
  • Map
  • Multimap
  • Unordered Map

Algorithms

  • sort()
  • reverse()
  • max_element()
  • min_element()
  • binary_search()
  • lower_bound()
  • upper_bound()
  • next_permutation()
  • count()

Utility Functions

  • Iterators
  • Lambda Functions
  • Comparators

🧩 LeetCode Solutions

A growing collection of LeetCode problems covering:

  • Arrays
  • Strings
  • Linked Lists
  • Stack
  • Queue
  • Recursion
  • Trees
  • Binary Search
  • STL-Based Problems
  • Two Pointers
  • Sliding Window
  • Hashing
  • Sorting

Each solution focuses on:

  • Problem Understanding
  • Optimal Approach
  • Time Complexity Analysis
  • Space Complexity Analysis

🎯 Repository Goals

  • Strengthen DSA Fundamentals
  • Master Problem Solving
  • Improve Coding Skills
  • Prepare for Technical Interviews
  • Learn Efficient Algorithms
  • Practice Competitive Programming

📈 Current Learning Journey

✔ Arrays

✔ Searching

✔ Sorting

✔ Linked Lists

✔ Stack

✔ Queue

✔ C++ STL

✔ LeetCode Problem Solving

🔄 Trees

🔄 Graphs

🔄 Dynamic Programming

🚀 More topics coming soon...


🧩 Problem Solving

  • LeetCode Problems
  • Practice Questions
  • Algorithmic Thinking

🛠 Technologies Used

  • C++
  • VS Code
  • Git
  • GitHub

🎯 Learning Objectives

  • Understand core DSA concepts
  • Improve problem-solving ability
  • Prepare for coding interviews
  • Build strong programming fundamentals
  • Learn efficient algorithm design

🚀 Getting Started

Clone Repository

git clone https://github.com/HafizEngineerMuhammadAbdullah/Data-Structures-And-Algorithm-In-C-.git

Open Project

cd Data-Structures-And-Algorithm-In-C-

Compile Program

g++ filename.cpp -o output

Run Program

./output

📈 Repository Progress

✔ Arrays

✔ Linked Lists

✔ Stack

✔ Queue

✔ Searching

✔ Sorting

🔄 Trees (In Progress)

🔄 Graphs (In Progress)

🔄 Dynamic Programming (Upcoming)


🌟 Future Plans

  • Advanced Trees
  • Graph Algorithms
  • Dynamic Programming
  • Greedy Algorithms
  • Backtracking
  • Sliding Window Techniques
  • Two Pointer Techniques
  • Competitive Programming Problems

🤝 Contributions

Contributions, suggestions, and improvements are welcome.

If you find this repository useful, consider giving it a ⭐.


👨‍💻 Author

Muhammad Abdullah

GitHub: https://github.com/HafizEngineerMuhammadAbdullah

LinkedIn: https://www.linkedin.com/in/muhammad-abdullah-360a87384/


💡 Quote

"Consistency is more important than perfection."

🚀 Keep Learning. Keep Building. Keep Growing.