39 lines
823 B
JavaScript
39 lines
823 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.Stack = void 0;
|
|
class Stack {
|
|
constructor() {
|
|
this._size = 0;
|
|
}
|
|
push(...values) {
|
|
for (const value of values) {
|
|
this.head = { value, next: this.head };
|
|
this._size++;
|
|
}
|
|
return this;
|
|
}
|
|
pop(_default) {
|
|
if (this.head) {
|
|
const value = this.head.value;
|
|
this.head = this.head.next;
|
|
this._size--;
|
|
return value;
|
|
}
|
|
return _default;
|
|
}
|
|
top() {
|
|
return this.head.value;
|
|
}
|
|
isEmpty() {
|
|
return this.head === undefined;
|
|
}
|
|
clear() {
|
|
this.head = undefined;
|
|
this._size = 0;
|
|
}
|
|
get size() {
|
|
return this._size;
|
|
}
|
|
}
|
|
exports.Stack = Stack;
|