GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - ivanmmarkovic/Problem-Solving-with-Algorithms-and-Data-Structures-using-Python: Code from Problem Solving with Algorithms and Data Structures using Python

BranchesTags
Open more actions menu

Latest commit

 

History

455 Commits
455 Commits

Folders and files

NameName
Last commit message
Last commit date
analysis
analysis
 
 
deque
deque
 
 
graphs
graphs
 
 
hash-table
hash-table
 
 
linked-lists
linked-lists
 
 
queue
queue
 
 
recursion
recursion
 
 
searching
searching
 
 
sorting
sorting
 
 
stack
stack
 
 
substring-search
substring-search
 
 
trees
trees
 
 
trie
trie
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
stack_two_queues.py
stack_two_queues.py
 
 

Repository files navigation

Problem-Solving-with-Algorithms-and-Data-Structures-using-Python

I started the project by learning data structures and algorithms from a book Problem Solving with Algorithms and Data Structures using Python. It does not contain everything from the book, nor is everything implemented in the same way, but it also contains other data structures, algorithms and problems.

Book website

Videos

Algorithm analysis

  • Anagrams - quadratic solution
  • Anagrams - log linear solution
  • Anagrams - linear solution
  • Time - iterative solution
  • Time - non-iterative solution

Stack

  • Stack - array implementation
  • Stack - less efficient array implementation
  • Stack - fixed size array implementation
  • Stack two queues
  • Stack - linked list implementation
    • Examples
      • Balanced brackets
      • Number converter

Queue

  • Queue - array implementation
  • Queue - fixed size array implementation
  • Queue - linked list implementation
  • Circular queue - fixed size array implementation
  • Queue - two stacks implementation

Deque

  • Deque - array implementation
  • Circular deque - fixed size array implementation
  • Deque - linked list implementation

Linked lists

  • Singly linked list
  • Doubly linked list
  • Circular singly linked list
  • Circular doubly linked list

Recursion

  • Convert number - recursive solution
  • Convert number - iterative solution
  • Factorial
  • Fibonacci - iterative solution
  • Fibonacci - recursive worst solution
  • Fibonacci - memoization
  • Fibonacci - recursive solution
  • Fibonacci sum recursive
  • Fibonacci sum iterative
  • Maze - path finder
  • Palindrome
  • Reverse linked list - recursive solution
  • Reverse linked list - iterative solution
  • Reverse linked list - iterative solution stack
  • Reverse list
  • Reverse string
  • Sum numbers - binary recursion
  • Sum numbers - recursion with pointer
  • Sum numbers - recursion with slicing
  • Towers of Hanoi

Searching

  • Sequential search - unordered list
  • Sequential search - ordered list
  • Binary search iterative
  • Binary search recursive
  • Binary search recursive pointers

Hash table

  • Linear probing
  • Chaining

Trees

  • List of lists representation
  • Class representation
  • Parse tree
  • Tree traversal
    • Methods
    • Functions
    • Preorder traversal example
    • Inorder traversal example
    • Postorder traversal example
  • Binary Heap - min heap implementation
  • Binary Search Tree
  • AVL tree

Sorting

  • Bubble sort
  • Short bubble
  • Insertion sort
  • Selection sort
  • Merge sort
  • Quicksort in place
  • Quicksort - return new array

Graphs

  • Breadth first search
  • Depth first search
    • Depth first search - stack
    • Depth first search - recursive
  • Cycle detection
    • Cycle detection directed graph
    • Cycle detection undirected graph
  • Topological sorting
  • Dijkstra algorithm - Shortest path
    • Priority Queue implementation
    • Matrix implementation
    • Adjacency list implementation
  • Bellman-Ford algorithm
  • Bellman-Ford algorithm - negative weight cycle
  • Minimum Spanning Tree
    • Minimum Spanning Tree in undirected graph
    • Prim's algorithm - Minimum Spanning Tree in undirected weighted graph
    • Kruskal's algorithm - Minimum Spanning Tree in undirected weighted graph
  • Is graph bipartite
  • Union find
    • Number of connected components
    • Union find path compression
  • Kosaraju's algorithm

Trie

  • Trie

Substring search

  • Brute force algorithm

About

Code from Problem Solving with Algorithms and Data Structures using Python

Topics

algorithmalgorithmsavl-tree-implementationsbreadth-first-searchdepth-first-searchdijkstra-shortest-pathgraphshashtablelinked-listprims-algorithmpythonrecursionsortingtopological-sorttrees

Resources

Readme
MIT license
Activity

Stars

135 stars

Watchers

9 watching

Forks

38 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.