Skip to main content

# pytrees ![](https://img.shields.io/badge/LICENSE-MIT-green.svg) ![](https://img.shields.io/badge/python-python3-color.svg)

A collection of python3 implementations of trees. Including AVL Tree, Interval Tree and More.

## Classes

### AVL Tree

AVL Tree. Balanced Binary Search Tree. Gurantee for balance.

API:

  • insert(self, val)

  • delete(self, key)

  • search(self, key)

  • getDepth(self)

  • preOrder(self)

  • inOrder(self)

  • postOrder(self)

  • countNodes(self)

  • buildFromList(cls, l)

### Interval Tree

Augmented data structure for checking overlaps of intervals. Gurantee for balance.

API:

  • queryOverlap(self, val)

  • queryAllOverlaps(self, val)

  • insert(self, val)

  • delete(self, key)

  • search(self, key)

  • getDepth(self)

  • preOrder(self)

  • inOrder(self)

  • postOrder(self)

  • countNodes(self)

  • buildFromList(cls, l)

### Binary Search Tree

Simple implementation of Binary Search Tree. No gurantee for balance.

API:

  • insert(self, val)

  • delete(self, key)

  • search(self, key)

  • getDepth(self)

  • preOrder(self)

  • inOrder(self)

  • postOrder(self)

  • countNodes(self)

  • buildFromList(cls, l)

### Trie (Prefix-Tree)

Prefix-tree. Useful for text search.

API:

  • insert(self, word)

  • search(self, word)

  • startsWith(self, prefix)

  • findAllWordsStartsWith(self, prefix)

  • buildFromList(cls, l)

### Binary Index Tree

A Fenwick tree or Binary Indexed Tree is a data structure that can efficiently update elements and calculate prefix sums in a table of numbers.

API:

  • update(self,i,k) –> update value k to index i

  • prefixSum(self,i) –> sum up [index 0, index 1, …, index i]

  • preview(self)

  • getSize(self)

  • buildFromList(cls, l)

Time Complexity: update & prefixSum, O(logN)

Space Complexity: O(N)

## Convention:

  • “key” and “val” are almost the same in this implementation. use term “key” for search and delete a particular node. use term “val” for other cases

Metadata

Release files for pytrees 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytrees 0.0.1
File Size Uploaded
pytrees-0.0.1.tar.gz 23.9 kB Details

Release files / pytrees-0.0.1.tar.gz

Download URL pytrees-0.0.1.tar.gz
Size 23.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0f33150c64a51e9f2b1fe5130e81105651ed6acf76104b2168d14e15dfc7e4d1
BLAKE2b-256 checksum
How to use checksums
ef0201e905aff44ab3331cc985718682b8798a321d9bf9fc7d56eae9e3df2367
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.1 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page