栈
栈是一种遵从 后进先出(LIFO)原则的有序集合。(例子:一摞书或是一叠盘子)
新添加的或待删除的元素都保存在栈的末尾,称为栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。
一、栈的创建
function Stack() {
var items = [];
this.push = function(element){
items.push(element); // 向栈顶,也就是栈的末尾添加元素
};
this.pop = function(){
return items.pop(); // 向栈顶,也就是栈的末尾移除元素
};
this.peek = function(){
return items[items.length-1]; // 获取栈顶的元素
};
this.isEmpty = function(){
return items.length == 0; // 判断内部数组的长度是否为0
};
this.size = function(){
return items.length; // 返回栈的长度
};
this.clear = function(){
items = []; // 清空栈
};
this.print = function(){
console.log(items.toString()); // 把栈里的元素都输出到控制台
};
}
二、使用栈
var stack = new Stack();
console.log(stack.isEmpty()); //输出为true
stack.push(5);
stack.push(8);
console.log(stack.peek()); //输出8
console.log(stack.size()); //输出3
console.log(stack.isEmpty()); //输出false
stack.pop();
console.log(stack.size()); //输出1