Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sarmad426/dsa-python

Data Structures and Algorithms using python from basics to adavnce featuring Leetcode problems.
https://github.com/sarmad426/dsa-python

algorithms data-structures-and-algorithms leetcode leetcode-solutions python

Last synced: 15 days ago
JSON representation

Data Structures and Algorithms using python from basics to adavnce featuring Leetcode problems.

Awesome Lists containing this project

README

        

# Data Structure and Algorithms using **Python**

This repository aims to provide a comprehensive collection of data structures and algorithms implementations in Python. Following along with this repository requires fundamental knowledge of programming in python, for that checkout this Repository. [Python](https://github.com/sarmad426/Python)

## Table of Contents

- [Data Structures](#data-structures)
- [Algorithms](#algorithms)

## Data Structures

A data structure is a particular way of organizing and storing data in a computer so that it can be accessed and modified efficiently.

### 1. Linked List

- Implementation of a singly linked list
- Implementation of a doubly linked list
- Operations: insertion, deletion, traversal, etc.

### 2. Stack

- Implementation of a stack using arrays and linked lists
- Operations: push, pop, peek, etc.

### 3. Queue

- Implementation of a queue using arrays and linked lists
- Operations: enqueue, dequeue, peek, etc.

### 4. Tree

- Implementation of various tree data structures: binary tree, binary search tree, AVL tree, etc.
- Tree traversal algorithms: inorder, preorder, postorder
- Operations: insertion, deletion, searching, etc.

### 5. Graph

- Implementation of graph data structure
- Graph traversal algorithms: BFS, DFS
- Shortest path algorithms: Dijkstra's algorithm, Bellman-Ford algorithm
- Minimum spanning tree algorithms: Prim's algorithm, Kruskal's algorithm

## Algorithms

An algorithm is a step-by-step procedure or formula for solving a problem.

### 1. Sorting Algorithms

- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Heap Sort

### 2. Searching Algorithms

- Linear Search
- Binary Search
- Depth-First Search (DFS)
- Breadth-First Search (BFS)

### 3. [Greedy Algorithms](/1-Basics/2-Algorithms/2-Algo-types/1-Greedy-algo/)

- Implementation of greedy algorithms
- Examples: Minimum spanning tree, Huffman coding, etc.

### 4. [Divide and Conquer](/1-Basics/2-Algorithms/2-Algo-types/2-Divide-conquer/)

- Implementation of divide and conquer algorithms
- Examples: Binary search, merge sort, etc.

### 5. [Dynamic Programming](/1-Basics/2-Algorithms/2-Algo-types/3-Dynamic-programming/)

- Implementation of dynamic programming solutions for various problems
- Examples: Fibonacci series, knapsack problem, longest common subsequence, etc.

### How to Use This Repository

- **Learning**: If you are new to DSA, start by exploring the theoretical documents to build a strong foundation. Then, dive into the code examples and implement data structures and algorithms from scratch.

- **Leetcode Interview Problems**: Use the Leetcode interview questions section to practice and improve your problem-solving skills. Understand the logic behind each solution and try to solve them independently first.

All of the practical examples are written using **python** programming. If you wanna use **C++** we also have an amazing resource for this. Checkout this repository [DSA-C++](https://github.com/sarmad426/DSA)

### Learning Resources

**Python**:

**Python Projects**:

Back end **API** development using **Fast API**:

Learn **AI** and **Data Science**:

Learn **Generative AI**: