1.52.0 • Published 3 months ago

heap-typed v1.52.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

NPM GitHub top language npm eslint npm bundle size npm bundle size npm

What

Brief

This is a standalone Heap data structure from the data-structure-typed collection. If you wish to access more data structures or advanced features, you can transition to directly installing the complete data-structure-typed package

How

install

npm

npm i heap-typed --save

yarn

yarn add heap-typed

methods

Min Heap npm.io Max Heap npm.io

snippet

TS

    import {MinHeap, MaxHeap} from 'data-structure-typed';
    // /* or if you prefer */ import {MinHeap, MaxHeap} from 'heap-typed';

    const minNumHeap = new MinHeap<number>([1, 6, 2, 0, 5]);
    minNumHeap.add(9);
    minNumHeap.has(1)        //  true
    minNumHeap.has(2)        //  true
    minNumHeap.poll()        //  0
    minNumHeap.poll()        //  1
    minNumHeap.peek()        //  2
    minNumHeap.has(1);       // false
    minNumHeap.has(2);       // true

    const arrFromHeap = minNumHeap.toArray();
    arrFromHeap.length       //  4
    arrFromHeap[0]           //  2
    arrFromHeap[1]           //  5
    arrFromHeap[2]           //  9
    arrFromHeap[3]           //  6
    minNumHeap.sort()        //  [2, 5, 6, 9]

    const maxHeap = new MaxHeap<{ keyA: string }>([], {comparator: (a, b) => b.keyA - a.keyA});
    const obj1 = {keyA: 'a1'}, obj6 = {keyA: 'a6'}, obj5 = {keyA: 'a5'}, obj2 = {keyA: 'a2'},
        obj0 = {keyA: 'a0'}, obj9 = {keyA: 'a9'};
    
    maxHeap.add(obj1);
    maxHeap.has(obj1)                       // true
    maxHeap.has(obj9)                       // false
    maxHeap.add(obj6);
    maxHeap.has(obj6)                       // true
    maxHeap.add(obj5);
    maxHeap.add(obj2);
    maxHeap.add(obj0);
    maxHeap.add(obj9);
    maxHeap.has(obj9)                       // true
    
    const peek9 = maxHeap.peek();
    console.log(peek9.keyA)                 // 'a9'
    
    const heapToArr = maxHeap.toArray();
    console.log(heapToArr.map(ele => ele?.keyA));  // ['a9', 'a2', 'a6', 'a1', 'a0', 'a5']
    
    const values = ['a9', 'a6', 'a5', 'a2', 'a1', 'a0'];
    let i = 0;
    while (maxHeap.size > 0) {
        const polled = maxHeap.poll();
        console.log(polled.keyA)           // values[i]
        i++;
    }

JS

const {MinHeap, MaxHeap} = require('data-structure-typed');
// /* or if you prefer */ const {MinHeap, MaxHeap} = require('heap-typed');

const minNumHeap = new MinHeap([1, 6, 2, 0, 5]);
minNumHeap.add(9);
minNumHeap.has(1)        //  true
minNumHeap.has(2)        //  true
minNumHeap.poll()        //  0
minNumHeap.poll()        //  1
minNumHeap.peek()        //  2
minNumHeap.has(1);       // false
minNumHeap.has(2);       // true

const arrFromHeap = minNumHeap.toArray();
arrFromHeap.length       //  4
arrFromHeap[0]           //  2
arrFromHeap[1]           //  5
arrFromHeap[2]           //  9
arrFromHeap[3]           //  6
minNumHeap.sort()        //  [2, 5, 6, 9]

const maxHeap = new MaxHeap([], {comparator: (a, b) => b.keyA - a.keyA});
const obj1 = {keyA: 'a1'}, obj6 = {keyA: 'a6'}, obj5 = {keyA: 'a5'}, obj2 = {keyA: 'a2'},
    obj0 = {keyA: 'a0'}, obj9 = {keyA: 'a9'};

maxHeap.add(obj1);
maxHeap.has(obj1)                       // true
maxHeap.has(obj9)                       // false
maxHeap.add(obj6);
maxHeap.has(obj6)                       // true
maxHeap.add(obj5);
maxHeap.add(obj2);
maxHeap.add(obj0);
maxHeap.add(obj9);
maxHeap.has(obj9)                       // true

const peek9 = maxHeap.peek();
console.log(peek9.keyA)             // 'a9'

const heapToArr = maxHeap.toArray();
console.log(heapToArr.map(ele => ele?.keyA));  // ['a9', 'a2', 'a6', 'a1', 'a0', 'a5']

const values = ['a9', 'a6', 'a5', 'a2', 'a1', 'a0'];
let i = 0;
while (maxHeap.size > 0) {
    const polled = maxHeap.poll();
    console.log(polled.keyA)           // values[i]
    i++;
}

API docs & Examples

API Docs

Live Examples

Examples Repository

Data Structures

Standard library data structure comparison

Benchmark

Built-in classic algorithms

Software Engineering Design Standards

1.52.0

3 months ago

1.51.9

3 months ago

1.51.8

3 months ago

1.51.7

4 months ago

1.51.5

4 months ago

1.51.4

4 months ago

1.51.3

4 months ago

1.51.0

4 months ago

1.51.2

4 months ago

1.51.1

4 months ago

1.50.9

4 months ago

1.50.8

4 months ago

1.50.7

4 months ago

1.50.6

4 months ago

1.50.5

4 months ago

1.50.4

4 months ago

1.50.3

4 months ago

1.50.2

4 months ago

1.50.1

4 months ago

1.50.0

4 months ago

1.49.9

4 months ago

1.49.8

4 months ago

1.49.5

5 months ago

1.49.7

4 months ago

1.49.6

4 months ago

1.49.4

5 months ago

1.49.3

5 months ago

1.49.2

5 months ago

1.49.1

5 months ago

1.49.0

5 months ago

1.48.6

5 months ago

1.48.5

5 months ago

1.48.8

5 months ago

1.48.7

5 months ago

1.48.9

5 months ago

1.37.0

7 months ago

1.37.3

7 months ago

1.37.4

6 months ago

1.37.2

7 months ago

1.37.7

6 months ago

1.37.8

6 months ago

1.37.5

6 months ago

1.37.6

6 months ago

1.37.9

6 months ago

1.40.0

6 months ago

1.44.0

6 months ago

1.44.1

6 months ago

1.48.0

5 months ago

1.48.2

5 months ago

1.48.1

5 months ago

1.48.4

5 months ago

1.48.3

5 months ago

1.38.2

6 months ago

1.38.0

6 months ago

1.38.1

6 months ago

1.38.6

6 months ago

1.38.7

6 months ago

1.38.4

6 months ago

1.38.5

6 months ago

1.38.8

6 months ago

1.38.9

6 months ago

1.41.1

6 months ago

1.41.0

6 months ago

1.41.3

6 months ago

1.41.2

6 months ago

1.45.1

6 months ago

1.41.5

6 months ago

1.45.0

6 months ago

1.41.4

6 months ago

1.45.3

6 months ago

1.41.7

6 months ago

1.45.2

6 months ago

1.41.6

6 months ago

1.41.9

6 months ago

1.41.8

6 months ago

1.39.1

6 months ago

1.39.2

6 months ago

1.39.0

6 months ago

1.39.5

6 months ago

1.39.6

6 months ago

1.39.3

6 months ago

1.39.4

6 months ago

1.42.0

6 months ago

1.42.2

6 months ago

1.42.1

6 months ago

1.42.4

6 months ago

1.42.3

6 months ago

1.46.2

6 months ago

1.42.6

6 months ago

1.46.1

6 months ago

1.42.5

6 months ago

1.42.8

6 months ago

1.46.3

6 months ago

1.42.7

6 months ago

1.46.6

6 months ago

1.46.5

6 months ago

1.42.9

6 months ago

1.46.8

6 months ago

1.46.7

6 months ago

1.36.4

7 months ago

1.36.5

7 months ago

1.36.2

7 months ago

1.36.3

7 months ago

1.36.8

7 months ago

1.36.9

7 months ago

1.36.6

7 months ago

1.43.1

6 months ago

1.43.0

6 months ago

1.43.3

6 months ago

1.47.1

6 months ago

1.47.3

6 months ago

1.47.2

6 months ago

1.47.5

5 months ago

1.47.4

6 months ago

1.47.7

5 months ago

1.47.6

5 months ago

1.47.9

5 months ago

1.47.8

5 months ago

1.35.1

7 months ago

1.34.2

7 months ago

1.34.3

7 months ago

1.32.2

8 months ago

1.35.0

7 months ago

1.34.1

7 months ago

1.34.6

7 months ago

1.33.7

7 months ago

1.34.7

7 months ago

1.33.8

7 months ago

1.32.9

7 months ago

1.40.0-rc

7 months ago

1.34.4

7 months ago

1.34.5

7 months ago

1.33.6

7 months ago

1.34.8

7 months ago

1.34.9

7 months ago

1.3.3

8 months ago

1.3.2

8 months ago

1.3.1

8 months ago

1.21.0

8 months ago

1.21.4

8 months ago

1.21.2

8 months ago

1.21.3

8 months ago

1.32.0

8 months ago

1.31.0

8 months ago

1.20.0

8 months ago

1.19.9

8 months ago

1.19.7

8 months ago

1.19.6

8 months ago

1.19.5

8 months ago

1.19.3

8 months ago