FixedSizeStack.ts 1.1 Ko
Télécharger le fichier
export class FixedSizeStack {
private _data: number[];
private _maxSize: number;
private _index: number;
constructor(k: number) {
this._data = [];
this._maxSize = k;
this._index = 0;
}
public reset(): void {
this._data = [];
this._index = 0;
}
public addValue(k: number): void {
if (this._data.length < this._maxSize) {
this._data.push(k);
} else {
this._data[this._index] = k;
}
this._index = (this._index + 1) % this._maxSize;
}
public getMax(): number {
let k = Number.MIN_VALUE;
let _local_2 = 0;
while (_local_2 < this._maxSize) {
if (this._data[_local_2] > k) k = this._data[_local_2];
_local_2++;
}
return k;
}
public getMin(): number {
let k = Number.MAX_VALUE;
let _local_2 = 0;
while (_local_2 < this._maxSize) {
if (this._data[_local_2] < k) k = this._data[_local_2];
_local_2++;
}
return k;
}
}
