Metadata-Version: 2.1
Name: pythonds3
Version: 3.0.3
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

[![Build Status](https://travis-ci.com/yasinovskyy/pythonds3.svg?branch=master)](https://travis-ci.com/yasinovskyy/pythonds3) [![codecov](https://codecov.io/gh/yasinovskyy/pythonds3/branch/master/graph/badge.svg)](https://codecov.io/gh/yasinovskyy/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


