@cute-dw/core
Version:
This TypeScript library is the main part of a more powerfull package designed for the fast WEB software development. The cornerstone of the library is the **DataStore** class, which might be useful when you need a full control of the data, but do not need
42 lines • 4.02 kB
JavaScript
import { Vector } from "./Vector";
/**
* The LIFO stack
*/
export class Stack extends Vector {
/**
* Pushes an item onto the top of this stack
*/
push(value) {
return this.insert(0, value);
}
/**
* Removes the object at the top of this stack and returns that object as the value of this function
*/
pop() {
let value = this._list.removeFirst();
return value;
}
/**
* Looks at the object at the top of this stack without removing it from the stack
* @returns
*/
peek() {
return this._list.peekFirst();
}
/**
* Returns the 1-based position where an object is on this stack
* @param value The desired value
* @returns The 1-based position from the top of the stack where the object is located; the return value -1 indicates that the object is not on the stack
*/
search(value) {
if (this._list.isEmpty()) {
return 0;
}
const index = this._list.indexOf(value);
if (index >= 0) {
return index + 1;
}
return -1;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jdXRlLWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9TdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLEtBQVMsU0FBUSxNQUFTO0lBQ3JDOztPQUVHO0lBQ0gsSUFBSSxDQUFDLEtBQWlCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNEOztPQUVHO0lBQ0gsR0FBRztRQUNELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxLQUFpQjtRQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDeEIsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNkLE9BQU8sS0FBSyxHQUFHLENBQUMsQ0FBQztTQUNsQjtRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIi4vQ29sbGVjdGlvblwiO1xyXG5pbXBvcnQgeyBWZWN0b3IgfSBmcm9tIFwiLi9WZWN0b3JcIjtcclxuXHJcbi8qKlxyXG4gKiBUaGUgTElGTyBzdGFja1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFN0YWNrPFQ+IGV4dGVuZHMgVmVjdG9yPFQ+IHtcclxuICAvKipcclxuICAgKiBQdXNoZXMgYW4gaXRlbSBvbnRvIHRoZSB0b3Agb2YgdGhpcyBzdGFja1xyXG4gICAqL1xyXG4gIHB1c2godmFsdWU6IEVsZW1lbnQ8VD4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmluc2VydCgwLCB2YWx1ZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgdGhlIG9iamVjdCBhdCB0aGUgdG9wIG9mIHRoaXMgc3RhY2sgYW5kIHJldHVybnMgdGhhdCBvYmplY3QgYXMgdGhlIHZhbHVlIG9mIHRoaXMgZnVuY3Rpb25cclxuICAgKi9cclxuICBwb3AoKTogRWxlbWVudDxUPnx1bmRlZmluZWQge1xyXG4gICAgbGV0IHZhbHVlID0gdGhpcy5fbGlzdC5yZW1vdmVGaXJzdCgpO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBMb29rcyBhdCB0aGUgb2JqZWN0IGF0IHRoZSB0b3Agb2YgdGhpcyBzdGFjayB3aXRob3V0IHJlbW92aW5nIGl0IGZyb20gdGhlIHN0YWNrXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBwZWVrKCk6IEVsZW1lbnQ8VD58dW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9saXN0LnBlZWtGaXJzdCgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSAxLWJhc2VkIHBvc2l0aW9uIHdoZXJlIGFuIG9iamVjdCBpcyBvbiB0aGlzIHN0YWNrXHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSBkZXNpcmVkIHZhbHVlXHJcbiAgICogQHJldHVybnMgVGhlIDEtYmFzZWQgcG9zaXRpb24gZnJvbSB0aGUgdG9wIG9mIHRoZSBzdGFjayB3aGVyZSB0aGUgb2JqZWN0IGlzIGxvY2F0ZWQ7IHRoZSByZXR1cm4gdmFsdWUgLTEgaW5kaWNhdGVzIHRoYXQgdGhlIG9iamVjdCBpcyBub3Qgb24gdGhlIHN0YWNrXHJcbiAgICovXHJcbiAgc2VhcmNoKHZhbHVlOiBFbGVtZW50PFQ+KTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLl9saXN0LmlzRW1wdHkoKSkge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fbGlzdC5pbmRleE9mKHZhbHVlKTtcclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIHJldHVybiBpbmRleCArIDE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gLTE7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=