| test name | time taken (ms) | executions per sec | sample deviation |
|---|---|---|---|
| 10,000 add & pop | 5.80 | 172.35 | 8.78e-5 |
| 10,000 fib add & pop | 357.92 | 2.79 | 0.00 |
Package Exports
- max-heap-typed
- max-heap-typed/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (max-heap-typed) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
What
Brief
This is a standalone Max 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 max-heap-typed --saveyarn
yarn add max-heap-typedmethods

snippet
TS
import {MaxHeap} from 'data-structure-typed';
// /* or if you prefer */ import {MaxHeap} from 'heap-typed';
const maxHeap = new MaxHeap<{ keyA: string }>();
const myObj1 = {keyA: 'a1'}, myObj6 = {keyA: 'a6'}, myObj5 = {keyA: 'a5'}, myObj2 = {keyA: 'a2'},
myObj0 = {keyA: 'a0'}, myObj9 = {keyA: 'a9'};
maxHeap.add(1, myObj1);
maxHeap.has(myObj1) // true
maxHeap.has(myObj9) // false
maxHeap.add(6, myObj6);
maxHeap.has(myObj6) // true
maxHeap.add(5, myObj5);
maxHeap.has(myObj5) // true
maxHeap.add(2, myObj2);
maxHeap.has(myObj2) // true
maxHeap.has(myObj6) // true
maxHeap.add(0, myObj0);
maxHeap.has(myObj0) // true
maxHeap.has(myObj9) // false
maxHeap.add(9, myObj9);
maxHeap.has(myObj9) // true
const peek9 = maxHeap.peek(true);
peek9 && peek9.val && peek9.val.keyA // 'a9'
const heapToArr = maxHeap.toArray(true);
heapToArr.map(item => item?.val?.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(true);
polled && polled.val && polled.val.keyA // values[i]
i++;
}JS
const {MaxHeap} = require('data-structure-typed');
// /* or if you prefer */ const {MaxHeap} = require('heap-typed');
const maxHeap = new MaxHeap();
const myObj1 = {keyA: 'a1'}, myObj6 = {keyA: 'a6'}, myObj5 = {keyA: 'a5'}, myObj2 = {keyA: 'a2'},
myObj0 = {keyA: 'a0'}, myObj9 = {keyA: 'a9'};
maxHeap.add(1, myObj1);
maxHeap.has(myObj1) // true
maxHeap.has(myObj9) // false
maxHeap.add(6, myObj6);
maxHeap.has(myObj6) // true
maxHeap.add(5, myObj5);
maxHeap.has(myObj5) // true
maxHeap.add(2, myObj2);
maxHeap.has(myObj2) // true
maxHeap.has(myObj6) // true
maxHeap.add(0, myObj0);
maxHeap.has(myObj0) // true
maxHeap.has(myObj9) // false
maxHeap.add(9, myObj9);
maxHeap.has(myObj9) // true
const peek9 = maxHeap.peek(true);
peek9 && peek9.val && peek9.val.keyA // 'a9'
const heapToArr = maxHeap.toArray(true);
heapToArr.map(item => item?.val?.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(true);
polled && polled.val && polled.val.keyA // values[i]
i++;
}API docs & Examples
Data Structures
| Data Structure | Unit Test | Performance Test | API Docs |
|---|---|---|---|
| Heap | Heap |
Standard library data structure comparison
| Data Structure Typed | C++ STL | java.util | Python collections |
|---|---|---|---|
| Heap<E> | priority_queue<T> | PriorityQueue<E> | heapq |
Benchmark
heap
Built-in classic algorithms
| Algorithm | Function Description | Iteration Type |
|---|
Software Engineering Design Standards
| Principle | Description |
|---|---|
| Practicality | Follows ES6 and ESNext standards, offering unified and considerate optional parameters, and simplifies method names. |
| Extensibility | Adheres to OOP (Object-Oriented Programming) principles, allowing inheritance for all data structures. |
| Modularization | Includes data structure modularization and independent NPM packages. |
| Efficiency | All methods provide time and space complexity, comparable to native JS performance. |
| Maintainability | Follows open-source community development standards, complete documentation, continuous integration, and adheres to TDD (Test-Driven Development) patterns. |
| Testability | Automated and customized unit testing, performance testing, and integration testing. |
| Portability | Plans for porting to Java, Python, and C++, currently achieved to 80%. |
| Reusability | Fully decoupled, minimized side effects, and adheres to OOP. |
| Security | Carefully designed security for member variables and methods. Read-write separation. Data structure software does not need to consider other security aspects. |
| Scalability | Data structure software does not involve load issues. |