All Projects â†’ TomerAberbach â†’ quetie

TomerAberbach / quetie

Licence: Apache-2.0 license
🎀 Just the cutest and tiniest queue/deque implementation!

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to quetie

Javascript Datastructures Algorithms
📚 collection of JavaScript and TypeScript data structures and algorithms for education purposes. Source code bundle of JavaScript algorithms and data structures book
Stars: ✭ 3,221 (+2801.8%)
Mutual labels:  stack, queue, deque
deque
JavaScript implementation of a double-ended queue
Stars: ✭ 17 (-84.68%)
Mutual labels:  stack, queue, deque
deque
A highly optimized double-ended queue
Stars: ✭ 75 (-32.43%)
Mutual labels:  queue, deque, double-ended-queue
ctl
My variant of the C Template Library
Stars: ✭ 105 (-5.41%)
Mutual labels:  stack, queue, deque
Containers
This library provides various containers. Each container has utility functions to manipulate the data it holds. This is an abstraction as to not have to manually manage and reallocate memory.
Stars: ✭ 125 (+12.61%)
Mutual labels:  stack, queue
Data Structures With Go
Data Structures with Go Language
Stars: ✭ 121 (+9.01%)
Mutual labels:  stack, queue
Data Structures
Common data structures and algorithms implemented in JavaScript
Stars: ✭ 139 (+25.23%)
Mutual labels:  stack, queue
Interviewbit
Collection of Abhishek Agrawal's gists solutions for problems on https://www.interviewbit.com
Stars: ✭ 166 (+49.55%)
Mutual labels:  stack, queue
Data Structures
This repository contains some data structures implementation in C programming language. I wrote the tutorial posts about these data structures on my personal blog site in Bengali language. If you know Bengali then visit my site
Stars: ✭ 82 (-26.13%)
Mutual labels:  stack, queue
Redux Data Structures
Reducer factory functions for common data structures: counters, maps, lists (queues, stacks), sets, etc.
Stars: ✭ 157 (+41.44%)
Mutual labels:  stack, queue
Algo Tree
Algo-Tree is a collection of Algorithms and data structures which are fundamentals to efficient code and good software design. Creating and designing excellent algorithms is required for being an exemplary programmer. It contains solutions in various languages such as C++, Python and Java.
Stars: ✭ 166 (+49.55%)
Mutual labels:  stack, queue
Cs2223
This a repository for WPI CS2223 Algorithms D Term 2018
Stars: ✭ 121 (+9.01%)
Mutual labels:  stack, queue
Collections.pooled
Fast, low-allocation ports of List, Dictionary, HashSet, Stack, and Queue using ArrayPool and Span.
Stars: ✭ 115 (+3.6%)
Mutual labels:  stack, queue
needle
📌📚 An extensive standalone data structure library for JavaScript.
Stars: ✭ 25 (-77.48%)
Mutual labels:  stack, queue
Buckets Swift
Swift Collection Data Structures Library
Stars: ✭ 106 (-4.5%)
Mutual labels:  stack, queue
Sc
Common libraries and data structures for C.
Stars: ✭ 161 (+45.05%)
Mutual labels:  stack, queue
C Macro Collections
Easy to use, header only, macro generated, generic and type-safe Data Structures in C
Stars: ✭ 192 (+72.97%)
Mutual labels:  stack, queue
Interview Questions
List of all the Interview questions practiced from online resources and books
Stars: ✭ 187 (+68.47%)
Mutual labels:  stack, queue
Data Structures
A collection of powerful data structures
Stars: ✭ 2,534 (+2182.88%)
Mutual labels:  stack, queue
Cdcontainers
Library of data containers and data structures for C programming language.
Stars: ✭ 57 (-48.65%)
Mutual labels:  stack, queue

quetie

Just the cutest and tiniest queue/deque implementation!

Features

Install

$ npm i quetie

Usage

import { Queue, Deque } from 'quetie'

const queue = new Queue()

queue.push(1)
queue.push(2)
queue.push(3)

console.log(queue.size)
//=> 3

console.log(queue.get(0))
console.log(queue.get(1))
console.log(queue.get(2))
console.log(queue.get(3))
console.log(queue.get(-1))
//=> 1
//=> 2
//=> 3
//=> 1
//=> 3

console.log([...queue])
//=> [ 1, 2, 3 ]

console.log(queue.shift())
console.log(queue.shift())
console.log(queue.shift())
console.log(queue.shift())
//=> 1
//=> 2
//=> 3
//=> undefined

const deque = new Deque()

deque.push(1)
deque.push(2)
deque.push(3)
deque.unshift(0)

console.log(deque.size)
//=> 4

console.log(deque.get(0))
console.log(deque.get(1))
console.log(deque.get(2))
console.log(deque.get(3))
console.log(deque.get(-1))
//=> 0
//=> 1
//=> 2
//=> 3
//=> 3

console.log([...deque])
//=> [ 0, 1, 2, 3 ]

console.log(deque.pop())
console.log(deque.shift())
console.log(deque.shift())
console.log(deque.pop())
console.log(deque.pop())
//=> 3
//=> 0
//=> 1
//=> 2
//=> undefined

See the type definitions for more documentation.

Benchmarks

Higher is better!

Queue

Random sequence of 1,000,000 push and shift calls:

native array x 24.16 ops/sec ±1.50% (44 runs sampled)
quetie x 69.70 ops/sec ±0.31% (72 runs sampled)
yocto-queue x 65.58 ops/sec ±0.19% (68 runs sampled)
denque x 63.27 ops/sec ±0.30% (66 runs sampled)
double-ended-queue x 30.84 ops/sec ±0.42% (55 runs sampled)

100,000 push calls followed by 100,000 shift calls:

native array x 1.21 ops/sec ±0.52% (8 runs sampled)
quetie x 196 ops/sec ±3.23% (83 runs sampled)
yocto-queue x 154 ops/sec ±1.11% (87 runs sampled)
denque x 177 ops/sec ±1.72% (82 runs sampled)
double-ended-queue x 132 ops/sec ±2.99% (63 runs sampled)

Deque

Random sequence of 1,000,000 push, pop, shift, and unshift calls:

native array x 23.83 ops/sec ±1.60% (44 runs sampled)
quetie x 65.25 ops/sec ±0.40% (68 runs sampled)
denque x 62.34 ops/sec ±0.30% (65 runs sampled)
double-ended-queue x 40.98 ops/sec ±0.36% (55 runs sampled)

Contributing

Stars are always welcome!

For bugs and feature requests, please create an issue.

For pull requests, please read the contributing guidelines.

License

Apache 2.0

This is not an official Google product.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].