Skip to content

🐍🖥️ ⌨️ 🖱️Data structures and Algorithms implementations using Python

Notifications You must be signed in to change notification settings

rajithst/Python-Data-Structures-and-Algorithms

Repository files navigation

Python Data Structures and Algorithms Implementation

  • Linked Lists

    • Singly Linked List
      • Append
      • Prepend
      • Insert after a given node
      • Delete node by Value
      • Delete node by position
      • Get length of a linked list
      • Swap two nodes
      • Reverse Linked list iteratively
      • Reverse Linked list recursively
      • Remove duplicates
      • Count the Occurrences Iteratively
      • Count the Occurrences Recursively
    • Circular Lined List
      • Append
      • Prepend
      • Delete
    • Double Linked List
      • Append
      • Prepend
      • Delete
  • Stack

  • Queue

  • Trees

    • Binary Tree
    • Binary Search Tree
  • Graph

    • Graph Traversal

      • Breadth First Search (BFS)
      • Depth First Search (DFS)
    • Cycle Detection

      • Cycle detection in Undirected Graph (DFS recursive)
      • Cycle detection in Directed Graph (DFS recursive)
    • Topological Sort of Directed Acyclic Graph (DAG)

      • Khan's Algorithm(BFS)
      • Depth First Search
    • Minimum Spanning Tree

      • Prim's Algorithm
      • Kruskal's Algorithm
    • Shortest Path

      • Dijkstra Algorithm
      • Bellman Ford Algorithm
      • Floyd Warshall Algorithm
      • Single Source Shortest Path using BFS (SSSP)
    • Flood Filling Algorithms

      • Number of Islands
      • Coloring Islands
      • Calculate Island sizes
      • Make largest island
    • DFS-Tree and Back-Edges

      • Cycle detection in an undirected graph using back-edges
      • Cycle detection in a directed/undirected graph using back-edges and ancestor property
      • Printing cycles using back-edges
    • Articulation Points and Bridges

      • Find Articulation points and bridges
    • Strongly Connected Components

      • Topological Ordering
      • Kosaraju Algorithm
    • Find Path exist between given two nodes

    • Count number of edges of an Undirected Graph

    • Check Undirected Graph is a Tree

    • Delete edge from the Graph

    • Clone an Undirected Graph

    • Check an Undirected Graph is a Bipartite graph

  • Disjoint Set

    • Quick Union Find
    • Union By Rank
    • Path Compression Optimization
  • Heap

    • Max Heap
    • Min Heap
  • Recursion

    • Head and Tail recursion example
  • Trie

    • Insert
    • Search
  • List/Arrays

    • Basic List operations (append,insert,remove,pop,reverse)
    • Basic List slicing
    • Basic Array operations
    • Sub Array Sum
      • Prefix Sum Algorithm
      • Kadane's Algorithm
    • Merge two sorted lists
  • Dynamic Programming 1D

    • Coin change Problem
    • Longest Increasing Subsequence(LIC) Problem
  • Sorting Algorithms

    • Bubble Sort
    • Insertion Sort
    • Selection Sort

About

🐍🖥️ ⌨️ 🖱️Data structures and Algorithms implementations using Python

Topics

Resources

Stars

Watchers

Forks

Languages