An open API service indexing awesome lists of open source software.

https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python

A collection of snippets of basic data structures and algorithms written in Python.
https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python

algorithms computational-geometry data-structures geometry graph-algorithms

Last synced: 7 months ago
JSON representation

A collection of snippets of basic data structures and algorithms written in Python.

Awesome Lists containing this project

README

          

# Basic Data Structures and Algorithms in Python

This is a collection of snippets of basic data structures and algorithms written in Python. Most of the algorithms here come from [this book](http://www.amazon.co.jp/exec/obidos/ASIN/B00U5MVXZO/sixa-22/ref=nosim/) but are re-written in a Python-specific manner.

#### Data Structures

* [Stack](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/stack.py)
* [Queue](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/queue.py)
* [Doubly linked list](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/doubly_linked_list.py)

#### Searching

* [Binary search](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/binary_search.py)

#### Sorting

* [Insertion sort](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/insertion_sort.py)
* [Bubble sort](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/bubble_sort.py)
* [Selection sort](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/selection_sort.py)

#### Trees

* [Binary tree](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/binary_tree.py)
* [Complete binary tree](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/complete_binary_tree.py)
* [Heap](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/heap.py)
* [Priority queue](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/priority_queue.py)
* [Depth-first search](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/depth_first_search.py)
* [Breadth-first search](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/breadth_first_search.py)

#### Graph

* [Graph](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/graph.py)
* [Prim's algorithm](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/prim_algorithm.py)
* [Dijikstra's algorithm](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/dijkstra_algorithm_with_adjacency_list.py) (with adjacency list)
* [Dijikstra's algorithm](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/dijkstra_algorithm_with_priority_queue.py) (with priority queue)

#### Computational Geometry
* [Point](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/point.py)
* [Counter-clockwise (ccw) predicate](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/point.py#L26)

* [Vector](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/vecvtor.py)

* [Parallel and perpendicular vectors](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/vector.py#L140-L147)

* [Geometry](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/geometry.py)

* [Point projection onto a line](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/geometry.py#L10)
* [Point reflection across a line](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/geometry.py#L17)
* [Distance from a point to a line](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/geometry.py#L21)
* [Distance from a line to a line](https://github.com/ytakzk/basic_data_structures_and_algorithms_in_python/blob/master/geometry.py#L51)