Stack
特点:先进后出(也叫LIFO:last in first out)
结构图:
栈常见的操作:
- push(element):添加一个新元素到栈顶位置;
- pop():移除栈顶的元素,同时返回被移除的元素;
- peek():返回栈顶的元素,不对栈做任何修改(该方法不会移除栈顶的元素,仅仅返回它);
- isEmpty():如果栈里没有任何元素就返回true,否则返回false;
- size():返回栈里的元素个数。这个方法和数组的length属性类似;
- toString():将栈结构的内容以字符串的形式返回。
代码实现:
function Stack() {
// 栈元素
this.items = [];
//1.入栈
Stack.prototype.push = (element) => {
this.items.push(element);
}
// 2.pop删除栈顶元素,并返回该元素
Stack.prototype.pop = () => {
return this.items.pop(); //pop方法删除最后一个元素,并返回删除的该值
}
// 3.取出栈顶元素
Stack.prototype.peek = () => {
return this.items[this.items.length - 1]
}
// 4.判断栈是否为空
Stack.prototype.isEmpty = () => {
return this.items.length === 0
}
// 5.获取栈的个数
Stack.prototype.size = () => {
return this