/pythonds3

Data Structures package for Problem Solving with Algorithms and Data Structures using Python

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

pythonds3

License: GPL v3 Supported Python versions PyPI version Build Status codecov

Data Structures package for Problem Solving with Algorithms and Data Structures using Python by Brad Miller and David Ranum.

The package is a supplement to Problem Solving with Algorithms and Data Structures using Python. It contains implementations of basic data structures, searching and sorting algorithms, trees, and graphs. Some implementation details are intentionally left out and readers are encouraged to complete them on their own.

Object-oriented programming

  • Typical class implementation
  • Use of getters, setters, and properties
  • Overriding magic methods (len, str, contains etc)

Basic data structures

  • Stack
  • Queue
  • Deque
  • Ordered linked list
  • Unordered linked list

Searching

  • Hash Table

Sorting

  • Bubble sort
  • Selection sort
  • Insertion sort
  • Shellsort
  • Merge sort
  • Quicksort
  • Heapsort

Trees

  • Binary tree
  • Binary search tree
  • AVL tree
  • Binary heap
  • Priority queue

Graphs

  • Breadth first search
  • Depth first search
  • Dijkstra's shortest path algorithm
  • Bellman-Ford shortest path algorithm
  • Prim's spanning tree algorithm