Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
max-heap-typed
Advanced tools
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
npm i max-heap-typed --save
yarn add max-heap-typed
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++;
}
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++;
}
Data Structure | Unit Test | Performance Test | API Docs |
---|---|---|---|
Heap | Heap |
Data Structure Typed | C++ STL | java.util | Python collections |
---|---|---|---|
Heap<E> | priority_queue<T> | PriorityQueue<E> | heapq |
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 |
Algorithm | Function Description | Iteration Type |
---|
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. |
FAQs
Max Heap. Javascript & Typescript Data Structure.
The npm package max-heap-typed receives a total of 831 weekly downloads. As such, max-heap-typed popularity was classified as not popular.
We found that max-heap-typed demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.