Metadata-Version: 2.1
Name: pythonds3
Version: 3.1.0
Summary: Data Structures package for Problem Solving with Algorithms and Data Structures using Python
Home-page: https://github.com/psads/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
License-File: LICENSE

# pythonds3

[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![Supported Python versions](https://img.shields.io/pypi/pyversions/pythonds3)](https://img.shields.io/pypi/pyversions/pythonds3) [![PyPI version](https://badge.fury.io/py/pythonds3.svg)](https://badge.fury.io/py/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

- HashMap

## Sorting

- Bubble sort
- Selection sort
- Insertion sort
- Shell sort
- Mergesort
- 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


