Git Product home page Git Product logo

mastering-data-structures-and-algorithms-using-python's Introduction

Mastering Data Structure and Algorithms Using Python

In this repo I will try to cover Abdul Bari Sir's Mastering Data Structures & Algorithms using C and C++ course codes in a Pythonic way.

Repository Notes

  • You must have basic level of python coding knowledge.
  • In this repository I only cover coding parts with minimal explanations.
  • Detailed explanations I will added in my LinkedIn and Medium as post.

Find Further Details In LinkedIn: Mastering DS & Algo Using Python - LinkedIn

Find Further Details In Medium: Mastering DS & Algo Using Python - Medium

Repository Content

Section 01: Essential Python Concepts

01 - Basic Data Types In Python
02 - Basic Builtin Functions In Python

Section 02: Basic Prerequisites

01 - Memory Management In Python
02 - Abstract Data Type (ADT)
03 - Time and Space Complexity

Section 03: Recursion

01 - Recursion Introduction
02 - Tail Recursion and Head Recursion
03 - Tree Recursion
04 - Indirect Recursion
05 - Nested Recursion
06 - Sum of Natural Number Using Recursion
07 - Factorial Using Recursion
08 - Power Using Recursion
09 - Taylor Series Using Recursion
10 - Taylor Series Using Horner's Rule Recursion
11 - Fibonacci Series Using Recursion - Memorization
12 - nCr Using Recursion
13 - Tower of Hanoi Problem Using Recursion

Section 04: Arrays Representations

01 - Introduction to Array
02 - Declarations of Array
03 - Static vs Dynamic Arrays
04 - How to Increase Array Size
05 - 2D Arrays
06 - Array Representation by Compiler
07 - Row Major Formula for 2D Arrays
08 - Column Major Formula for 2D Arrays
09 - Formulas for nD Arrays
10 - Formulas for 3D Arrays

Section 05: Array ADT

01 - Array ADT
02 - Inserting in an Array
03 - Deleting from Array
04 - Linear Search
05 - Binary Search
06 - Get( ) Set( ) Avg( ) Max( ) functions on Array
07 - Reverse and Shift an Array
08 - Check if Array is Sorted
09 - Merging Arrays
10 - Set operations on Array - Union, Intersection and Difference
11 - Finding Missing Element(s) in an Array
12 - Finding Duplicates in a Sorted Array
13 - Finding Duplicates in Sorted Array Using Hashing
14 - Finding Duplicates in a Unsorted Array
15 - Finding a Pair of Elements with sum K
16 - Finding a Pair of Elements with sum K in Sorted Array
17 - Finding Max and Min in a Single Scan

Section 06: Strings

01 - Introduction to Strings
02 - Finding Length of a String
03 - Changing Case of a String
04 - Counting Words and Vowels in a String
05 - Validating a String
06 - Reversing a String
07 - Comparing Strings and Checking Palindrome
08 - Finding Duplicates in a String
09 - Finding Duplicates in a String Using Bitwise Operations
10 - Checking if 2 Strings are Anagram
11 - Permutation of String

Section 07: Matrices

01 - Diagonal Matrix
02 - Lower Triangular Matrix Row-Major Mapping
03 - Lower Triangular Matrix Column-Major Mapping
04 - Upper Triangular Matrix Row-Major Mapping
05 - Upper Triangular Matrix Column-Major Mapping
06 - Symmetric Matrix
07 - Tri-Diagonal and Tri-Band Matrix
08 - Toeplitz Matrix
09 - Menu Driven Program for Matrices
10 - Menu Driven Program for Matrices Using Functions

Section 08: Sparse Matrix and Polynomial Representation

01 - Sparse Matrix Representation
02 - Array Representation of Sparse Matrix
03 - Addition of Sparse Matrices
04 - Polynomial

Section 09: Linked List

01 - Display Linked List
02 - Recursive Display of Linked List
03 - Counting Nodes in a Linked List
04 - Sum of All Elements in a Linked List
05 - Maximum Element in a Linked List
06 - Searching in a Linked List
07 - Inserting in a Linked List
08 - Creating a Linked List by Inserting at Last
09 - Inserting in a Sorted Linked List
10 - Deleting from Linked List
11 - Check if a Linked List is Sorted
12 - Remove Duplicates from Linked List
13 - Reversing a Linked List
14 - Recursive Reverse for Linked List
15 - Concatenating 2 Linked Lists
16 - Merging 2 Linked Lists
17 - Check for LOOP in Linked List
18 - Circular Linked List
19 - Inserting in a Circular Linked List
20 - Deleting From Circular Linked List
21 - Doubly Linked List
22 - Insert in a Doubly Linked List
23 - Deleting from Doubly Linked List
24 - Reverse a Doubly Linked List
25 - Circular Doubly Linked List
26 - Finding Middle Element of a Linked List
27 - Finding Intersecting point of Two Linked List

Section 10: Sparse Matrix and Polynomial Using Linked List

01 - Sparse Matrix Using Linked List
02 - Polynomial Representation Using Linked List\

Section 11: Stack

01 - Stack Using Array
02 - Stack Using Linked List
03 - Parenthesis Matching
04 - Infix to Postfix Conversion
05 - Associativity and Unary Operators
06 - Infix to Postfix Using Stack Method
07 -Infix to Postfix with Associativity and Parenthesis
08 - Evaluation of Postfix

Section 12: Queues

01 - Implementing Queue Using Array
02 - Circular Queue
03 - Queue Using Linked List
04 - Double Ended Queue Dequeue
05 - Priority Queues
06 - Queue Using 2 Stacks

Section 13: Trees

01 - Binary Tree
02 - n-ary Trees
03 - Linked Representation of Binary Tree
04 - Binary Tree Traversals
05 - Binary Tree Traversal Easy Method
06 - Creating Binary Tree
07 - Preorder Tree Traversal
08 - Inorder Tree Traversals Functions
09 - Iterative Preorder
10 - Iterative Inorder
11 - Level Order Traversal
12 - Generating Tree from Traversals
13 - Height and Count of Binary Tree
14 - Count Leaf Nodes of a Binary Tree

Section 14: Binary Search Trees

01 - Binary Search Trees intro
02 - Searching in a Binary Search Tree
03 - Inserting in a Binary Search Tree
04 - Recursive Insert in Binary Search Tree
05 - Creating a Binary Search Tree
06 - Deleting from Binary Search Tree
07 - Generating Binary Search Trees from Preorder

Section 15: AVL Trees

01 - Introduction to AVL Trees
02 - Inserting in AVL with Rotations
03 - General form of AVL Rotations
04 - Generating AVL Tree
05 - Deletion from AVL Tree with Rotations
06 - Height Analysis of AVL Trees

Section 16: Search Trees

01 - 2-3 Trees
02 - 2-3-4 Trees
03 - Re-Black Trees Introduction
04 - Red-Black Tree creation
05 - Creating Red-Black Tree similar to Creating 2-3-4 Tree
06 - Red-Black Tree Deletion Cases

Section 17: Heap

01 - Introduction to Heap
02 - Inserting in a Heap
03 - Creating a Heap
04 - Deleting from Heap and Heap Sort
05 - Heapify - Faster Method for Creating Heap
06 - Heap as Priority Queue

Section 18: Sorting Techniques

01 - Bubble Sort
02 - Insertion Sort
03 - Selection Sort
04 - Quick Sort
05 - Iterative Merge Sort
06 - Recursive Merge Sort
07 - Count Sort
08 - Bin / Bucket Sort
09 - Radix Sort
10 - Shell Sort

Section 19: Hashing Technique

01 - Introduction to Hashing
02 - Chaining
03 - Linear Probing
04 - Quadratic Probing
05 - Double Hashing
06 - Hash Function Ideas

Section 20: Graphs

01 - Introduction to Graphs
02 - Representation of Undirected Graph
03 - Representation of Directed Graphs
04 - Breadth First Search
05 - Depth First Search
06 - Spanning Trees
07 - Prim's Minimum Cost Spanning Tree
08 - Kruskal's Minimum Cost Spanning Tree
09 - Disjoint Subsets
10 - Kruskal's Program

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.