
Security News
How Enterprise Security Is Adapting to AI-Accelerated Threats
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.
queue-typed
Advanced tools
In the usual gig, we make do with Array.push and Array.shift to play Queue in JavaScript, but here's the kicker – native JavaScript Array isn't exactly Queue VIP. That shift move? It's a bit of a slow dance with a time complexity of linear time complexity O(n). When you're working with big data, you don't want to be caught slow-shifting. So, we roll up our sleeves and craft a Queue that's got a speedy constant time complexity O(1) Queue.enqueue(), a snappy O(1) Queue.dequeue(), and a lightning-fast O(1) Queue.getAt(). Yep, it's Queue-tastic!
| Data Structure | Enqueue | Dequeue | Access | Enqueue & Dequeue 100000 | Access 100000 |
|---|---|---|---|---|---|
| Queue Typed | O(1) | O(1) | O(1) | 22.60ms | 10.60ms |
| JavaScript Native Array | O(1) | O(n) | O(1) | 931.10ms | 8.60ms |
| Other Queue | O(1) | O(1) | O(n) | 28.90ms | 17175.90ms |
This is a standalone Queue 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 queue-typed --save
yarn add queue-typed
import {Queue} from 'queue-typed';
// /* or if you prefer */ import {Queue} from 'queue-typed';
const queue = new Queue<number>();
for (let i = 0; i < magnitude; i++) {
queue.enqueue(i);
}
for (let i = 0; i < magnitude; i++) {
queue.dequeue();
}
for (let i = 0; i < magnitude; i++) {
console.log(queue.getAt(i)); // 0, 1, 2, 3, ...
}
const {Queue} = require('queue-typed');
// /* or if you prefer */ const {Queue} = require('queue-typed');
const queue = new Queue();
for (let i = 0; i < magnitude; i++) {
queue.enqueue(i);
}
for (let i = 0; i < magnitude; i++) {
queue.dequeue();
}
for (let i = 0; i < magnitude; i++) {
console.log(queue.getAt(i)); // 0, 1, 2, 3, ...
}
const nums = [2, 3, 4, 1, 5];
const k = 2;
const queue = new Queue<number>();
let maxSum = 0;
let currentSum = 0;
nums.forEach((num, i) => {
queue.push(num);
currentSum += num;
if (queue.length > k) {
currentSum -= queue.shift()!;
}
if (queue.length === k) {
maxSum = Math.max(maxSum, currentSum);
}
});
console.log(maxSum); // 7
const graph: { [key in number]: number[] } = {
1: [2, 3],
2: [4, 5],
3: [],
4: [],
5: []
};
const queue = new Queue<number>();
const visited: number[] = [];
queue.push(1);
while (!queue.isEmpty()) {
const node = queue.shift()!;
if (!visited.includes(node)) {
visited.push(node);
graph[node].forEach(neighbor => queue.push(neighbor));
}
}
console.log(visited); // [1, 2, 3, 4, 5]
| Data Structure | Unit Test | Performance Test | API Docs |
|---|---|---|---|
| Queue | Queue |
| Data Structure Typed | C++ STL | java.util | Python collections |
|---|---|---|---|
| Queue<E> | queue<T> | Queue<E> | - |
| test name | time taken (ms) | executions per sec | sample deviation |
|---|---|---|---|
| 1,000,000 push | 39.90 | 25.07 | 0.01 |
| 1,000,000 push & shift | 81.79 | 12.23 | 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
Queue data structure
The npm package queue-typed receives a total of 157 weekly downloads. As such, queue-typed popularity was classified as not popular.
We found that queue-typed demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer 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.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.