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 complexityO(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
more data structures
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
How
install
npm
npm i queue-typed --save
yarn
yarn add queue-typed
snippet
TS
import{Queue}from'queue-typed';// /* or if you prefer */ import {Queue} from 'queue-typed';constqueue=newQueue<number>();for(leti=0;i<magnitude;i++){queue.enqueue(i);}for(leti=0;i<magnitude;i++){queue.dequeue();}for(leti=0;i<magnitude;i++){console.log(queue.getAt(i));// 0, 1, 2, 3, ...}
JS
const{Queue}=require('queue-typed');// /* or if you prefer */ const {Queue} = require('queue-typed');constqueue=newQueue();for(leti=0;i<magnitude;i++){queue.enqueue(i);}for(leti=0;i<magnitude;i++){queue.dequeue();}for(leti=0;i<magnitude;i++){console.log(queue.getAt(i));// 0, 1, 2, 3, ...}
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.