UNPKG

mthb-circular-buffer

Version:
44 lines (37 loc) 1.43 kB
# CircularBuffer [![GitHub issues](https://img.shields.io/github/issues/Magnithor/CircularBuffer)](https://github.com/Magnithor/CircularBuffer/issues) ![github languages](https://img.shields.io/github/languages/top/grant-zietsman/validate-typescript.png) ```javascript import { CircularBuffer } from 'mthb-circular-buffer'; ``` ## Allow OverFlow = true ```javascript var circularBuffer = new CircularBuffer(2 /*length*/, true /*allowOverFlow*/); circularBuffer.push(1); circularBuffer.push(2); console.log(circularBuffer.size()); // 2 circularBuffer.push(3); console.log(circularBuffer.size()); // 2 console.log(circularBuffer.pop()); // 2 console.log(circularBuffer.pop()); // 3 console.log(circularBuffer.size()); // 0 ``` ## Allow OverFlow = false ```javascript var circularBuffer = new CircularBuffer(2 /*length*/, false /*allowOverFlow*/); circularBuffer.push(1); circularBuffer.push(2); console.log(circularBuffer.pop()); // 1 console.log(circularBuffer.pop()); // 2 circularBuffer.push(3); circularBuffer.push(4); circularBuffer.push(5); // throw "overflow" ``` ## Description and Big O Function | Big O | Description ---------|-------|------------ push | O(1)| push item to circular buffer pop | O(1) | pop item of circular buffer size | O(1) | size of circular buffer export | O(n) | pop all items of circular buffer clear | O(n) | clear all items of circular buffer