Files
ADHA_mobile_project/assets/CircularArray-ef508845.js
2024-02-28 17:06:42 +05:00

2 lines
757 B
JavaScript

class e{constructor(t){this.size=0,this._start=0,this.maxSize=t,this._buffer=new Array(t)}get entries(){return this._buffer}enqueue(t){if(this.size===this.maxSize){const s=this._buffer[this._start];return this._buffer[this._start]=t,this._start=(this._start+1)%this.maxSize,s}return this._buffer[(this._start+this.size++)%this.maxSize]=t,null}dequeue(){if(this.size===0)return null;const t=this._buffer[this._start];return this._buffer[this._start]=null,this.size--,this._start=(this._start+1)%this.maxSize,t}peek(){return this.size===0?null:this._buffer[this._start]}find(t){if(this.size===0)return null;for(const s of this._buffer)if(s!=null&&t(s))return s;return null}clear(t){let s=this.dequeue();for(;s!=null;)t&&t(s),s=this.dequeue()}}export{e as t};