Metadata-Version: 2.0
Name: pythonds3
Version: 3.0.2
Summary: Data Structures package for Problem Solving with Algorithms and Data Structures using Python
Home-page: https://github.com/yasinovskyy/pythonds3
Author: Roman Yasinovskyy
Author-email: yasinovskyy@gmail.com
License: GPLv3+
Keywords: Education,Algorithms,Data Structures,Python,Stack,Queue,Tree,Graph
Platform: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Education
Classifier: Topic :: Education
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Description-Content-Type: text/markdown

# pythonds3
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](https://runestone.academy/runestone/static/pythonds/index.html). 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


