Stack
// LIFO (Last In, First Out)
export default class Stack {
constructor() {
this._size = 0;
this._storage = {};
}
push(data) {
const size = ++this._size;
this._storage[size] = data;
}
pop() {
const size = this._size;
if (size) {
const deletedData = this._storage[size];
delete this._storage[size];
this._size--;
return deletedData;
}
}
}