栈是一种先进后出的结构,新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端叫做栈底。
示意图如下:
栈的创建
在JavaScript生成栈,一般使用数组来形成。
var items=[];
栈的方法
栈一般会有下列几种方法:
- push:元素入栈
- pop:元素出栈
- peek:返回栈顶元素
- isEmpty:判断栈是否为空
- clear:清除栈中所有元素
- size:返回栈中元素个数
push
元素入栈可以直接使用数组原生的push方法
this.push=function(item){
items.push(item)
}
pop
元素出栈可以直接使用数组原生的pop方法
this.pop=function(){
return items.pop();
}
peek
栈是先入后出结构,所以栈顶元素,为数组的最后一个元素
this.peek=function(){
return items[items.length-1]
}
isEmpty
判断栈是否为空,只需要判断数组长度是否为0
this.isEmpty=funciton(){
return items.length==0;
}
clear
清空栈只需要将数组置空就可以了
this.clear=function(){
items=[];
}
size
栈的大小就是返回数组长度
this.size=function(){
return items.length;
}
完整代码如下:
function Stack(){
var items=[];
this.push=function(item){
items.push(item)
}
this.pop = function(){
return items.pop();
};
this.peek = function(){
return items[items.length-1];
};
this.isEmpty = function(){
return items.length == 0;
};
this.size = function(){
return items.length;
};
this.clear = function(){
items = [];
};
}
使用方法:
var stack=new Stack();
stack.push('a');
stack.push('b');
stack.push('c');
stack.pop();//c
stack.size()//2
stack.peek();//b
stack.isEmpty;//false
stack.clear();//
stack.size();//0