栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
特点: 后进先出
// class
class Stack{
constructor(){
this.items = []
}
// 移除栈顶的元素
pop(){
return this.items.pop()
}
// 向栈顶添加元素
push(element){
return this.items.push(element)
}
// 查看栈顶元素
peek(){
return this.items[this.size() - 1]
}
// 返回栈里元素的个数
size(){
return this.items.length
}
// 移除栈里所有元素
clear(){
this.items = []
}
// 判断栈里元素个数是否为0
isEmpty(){
return this.items.length === 0
}
}
// function
function Stack(){
this.items = []
}
Stack.prototype.pop(){
return this.items.pop()
}
Stack.prototype.push(element){
return this.items.push(element)
}
Stack.prototype.peek(){
return this.items[this.size() - 1]
}
Stack.prototype.isEmpty(){
return this.items.length === 0
}
Stack.prototype.size(){
return this.items.length
}
Stack.prototype.clear(){
this.items = []
}