Metadata-Version: 2.1
Name: pythonds3
Version: 3.0.0
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: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
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

## Searhing
 - Hash Table

## Sorting
 - Bubble sort
 - Selection sort
 - Insertion sort
 - Shell sort
 - Merge sort
 - Quick sort
 - Heap sort

## 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 sortest path algorithm
 - Prim's spanning tree algorithm


