Skip to main content

Binary Heap Priority Queue

Project description

HitCount GitHub contributors Version License Build Status Downloads

BHPQ - Binary Heap Priority Queue

A binary heap priority queue implementation, thread safe

Installation

You can install bhpq from PyPI:

pip install bhpq

bhpq is supported on Python 3.7

Usage

from bhpq import BinaryHeapPriorityQueue

# The BinaryHeapPriorityQueue constructor takes two input params:

# - prefer (required param)
#    the preferred object is pushed to the top of the queue
# the prefer input is a lambda function eg:
# prefer=(lambda lhs, rhs: lhs if lhs.val >= rhs.val else rhs)

# - size
#    The initial size allocation of the queue, default value is 10

Example

class Node(object):
def __init__(self, val):
    self.val = val

A = BinaryHeapPriorityQueue(
        prefer=(lambda lhs, rhs: lhs if lhs.val >= rhs.val else rhs), size=5
    )

A.add(Node(1))
A.add(Node(4))
A.add(Node(3))
A.add(Node(5))
A.add(Node(2))

assert 5 == A.pop().val
assert 4 == A.pop().val
assert 3 == A.pop().val
assert 2 == A.pop().val
assert 1 == A.pop().val
assert None == A.pop()

Methods

  • size()

returns the current size of the priority queue

  • peek()

returns the object at the topof the priority queue if it exists else returns None

  • pop()

removes and returns the object at the top of the priority queue if it exists else returns None

  • add(val)

adds an element to the priority queue

Maintainer

Aayush Uppal

Project details


Download files

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

Files for bhpq, version 2.0.1
Filename, size & hash File type Python version Upload date
bhpq-2.0.1-py3-none-any.whl (4.2 kB) View hashes Wheel py3
bhpq-2.0.1.tar.gz (3.0 kB) View hashes Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page