npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jsheap

v0.0.1

Published

Binary heap trees implementation

Downloads

14

Readme

jsheap Build Status

Binary heaps implementation in Javascript

A binary heap is a complete binary tree which satisfies the heap ordering property. The ordering can be one of two types:

  • the min-heap property: the value of each node is greater than or equal to the value of its parent, with the minimum-value element at the root.
  • the max-heap property: the value of each node is less than or equal to the value of its parent, with the maximum-value element at the root.

A heap is not a sorted structure and can be regarded as partially ordered: there is no particular relationship among nodes on any given level, even among the siblings. It is useful data structure when you need to remove the object with the highest (or lowest) priority. A common use of a heap is to implement a priority queue.

Time complexity

Install

$ npm install --save jsheap

API

HeapTree(params)

Initialises a HeapTree object

  • Parameters:
    • params: object with keys 'src' (source array) and 'check' (whether to perform a heapify)

HeapTree.getArray()

Gets the underlying array structure

HeapTree.heapify(arr)

Transform an array into a max-heap

HeapTree.level(i)

Gets the level of a node

HeapTree.parent(i)

Gets the parent of a node

HeapTree.left(i)

Gets the left child of a node

HeapTree.right(i)

Gets the right child of a node

ht.root()

Gets the root of the heap

ht.lastLeaf()

Gets the last leaf of the heap

ht.isEmpty()

Checks whether the heap is empty

ht.bubbleUp(i)

Bubble up a node to its correct position

ht.bubbleDown(i)

Bubble down a node to its correct position

ht.insert(k)

Inserts a node into the heap

ht.deleteRoot()

Deletes the root

ht.delete(i)

Deletes a node from the heap