Skip to main content

Priority search tree data structure

Project description

The priority search tree (PST) is data structure (mutable mapping {key: priority}) with the following properties:

  • Keys are stored in binary search tree (red-black tree in this case).

  • Maintains max heap properties (can return key with max priority in constant time).

  • Ability to perform efficient 3-sided search (finds items with key in interval [min_tree_key,max_tree_key] and priority is grater or equal to bottom_priority).

For example PST can store 2 dimensional points P(X,Y) using X coordinate as key and Y coordinate as priority. Such PST can perform 3 sided search to find points with X in [X_MIN,X_MAX] and Y >= Y_BOTTOM.

Installation

pip install priority-search-tree

You can also install the in-development version with:

pip install https://github.com/yusinv/priority-search-tree/archive/develop.zip

Documentation

https://priority-search-tree.readthedocs.io/

Development

To run all the tests run:

tox

Licence

Free software: GNU Lesser General Public License v3 or later (LGPLv3+)

Changelog

0.0.0 (2024-03-04)

  • First release on PyPI.

0.0.1 (2024-03-24)

  • Initial implementation.

0.0.2 (2024-03-26)

  • Added sorted_query method.

  • Added __len__ and __contains__ methods.

  • Added clear method.

  • Fixed issue with not unique heap keys

0.1.0 (2024-04-08)

  • Refactoring

  • Added PrioritySearchSet class

  • Added __iter__ method

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

priority-search-tree-0.1.0.tar.gz (48.1 kB view details)

Uploaded Source

Built Distribution

priority_search_tree-0.1.0-py3-none-any.whl (25.6 kB view details)

Uploaded Python 3

File details

Details for the file priority-search-tree-0.1.0.tar.gz.

File metadata

  • Download URL: priority-search-tree-0.1.0.tar.gz
  • Upload date:
  • Size: 48.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for priority-search-tree-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dc6d9f892b6620f6e7b88b1ba089775b6ca74109e3e7adca7d9c7f1cd428551c
MD5 073b5be2acd81f655dacdf2160b863d0
BLAKE2b-256 c408d107080d3ab2369fbcd5dd449f00965c08810649e18ade1c0078c7d314c0

See more details on using hashes here.

File details

Details for the file priority_search_tree-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for priority_search_tree-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e169a802373d6dcdd87f4e6cc1aa815187f62d882ffe85a2d5f5f6dc626eaf48
MD5 08b1df78cbf64227c218ab9a951390ba
BLAKE2b-256 24d8349ebbd0ac21938d4cce32a419faaf18e80ec5fd2754a5e97f45229116dc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page