js学习栈
一、栈的结构
栈是常用的数据结构,遵循先进后出或后进先出的原则(LIFO),结构如下:
只能在一端进行插入和删除操作,即栈顶,另一端成为栈底;向栈中添加一个元素成为进栈或压栈,从栈顶删除一个元素成为出栈或弹出栈。
函数调用栈:通过函数的形式形成栈方式的调用
function A(){
B();
console.log('A已执行完');
}
function B(){
C();
console.log('B已执行完');
}
function C(){
console.log('C已执行完');
}
A();
二、封装栈(形成栈结构)
栈与数组或链表挂钩,但是仅具备它们之中的部分方法:
(1)push():进栈
(2)pop():出栈并返回出栈元素
(3)peek():查看栈顶元素
(4)isEmpty():判断栈是否为空
(5)clear():清空栈
(6)size():查看栈元素个数
封装栈常用的是构造函数和类的方法:
使用数组方式封装栈:
//构造函数方式
function Stack(){
this.item = [];
Stack.prototype.push = function(element){
this.item.push(element);
}
Stack.prototype.pop = function(element){
return this.item.pop(element);
}
Stack.prototype.peek = function(){
return this.item[this.item.length - 1];
}
Stack.prototype.isEmpty = function(){